フォルダーおよびサブフォルダーで.sql拡張子を持つすべてのファイルを検索します


17

フォルダーとサブフォルダー(再帰的)で.sql拡張子を持つすべてのファイルを検索したい。

これどうやってするの?

回答:


29

または...

find $directory_name -name \*.sql

例えば

find / -name \*.sql

または

find ~ \*.sql

(ここで〜は/ home / your_username /と同じ)、または...

find /usr/local/share/ \*.sql

などなど。


2

これをコマンドラインで実行します。

cd / && find | grep '\.sql$'

「/」を検索するディレクトリに変更します。

このfindコマンドはgrepなしでタスクを実行できます(追加のオプションを使用)が、上記の使用法の方が便利だと思います。

順番に、上記のコマンド:

  1. 現在のディレクトリをルートディレクトリに変更します(cd /
  2. 現在のディレクトリ以下のすべてのファイルとディレクトリをリストします(find
  3. '.sql'(| grep '\.sql$')で終わるファイルとディレクトリをフィルターします

ありがとう、説明できますか?あなたはgrepを使用して、その出力を見つけて渡しますか?
ブランクマン

実際にはその逆です。findを使用して、その出力をgrepに渡します。上記でより詳細な説明を追加しました。
バルバロッサ

これはMacでも動作しますか?見つけてみました| grep '\ .sql $'と使用方法のヘルプ情報を出力しました。
ブランクマン

findは強力なツールであり、出力をgrepにパイプする必要はありません。これはいいリンクです-content.hccfl.edu/pollock/unix/findcmd.htm
パンサー

1
findすでにフィルタ機能を持っている
enzotib

1

私はこれが古い投稿であることを知っていますが、私はこれにかなり新しく、ディレクトリとその子サブディレクトリ内の特定の拡張子のすべてのファイルを見つける簡単な方法を見つけました。さて、あなたに最初にナビゲートしparent Directory、その後find . -name '*.sql'、それはあなたが持つすべてのファイルがあります.SQLディレクトリとそのサブディレクトリに拡張子を。

私の場合、ディレクトリとそのサブディレクトリ内のすべての.xmlファイルを削除したいので、ここでのように削除を追加しましたfind . -name '*.xml' | xargs rm

これが誰かを助けることを願っています:)


2
find-deleteコマンドを理解します。関与する必要はありませんrm。または-exec、パイプとを迂回せずにコマンドを直接呼び出すことができますxargs
デビッドフォースター

0
locate -br \\.sql$ | egrep '^/folder/path/'

インストールされていない場合は、以前に以下を使用してインストールします。

sudo apt install mlocate

これには、mlocate.dbUbuntuですぐに設定できない最新のインスタンスが必要です(私は信じています)。また、なぜ単純ではないのですlocate '/folder/path/*.sql'か?
デビッドフォースター

あなたが指定されているよう@DavidFoersterI私が試したが、それは仕事をしない、私は正規表現では推測locateに使用される正規表現から、いくつかの異なる設定を持っているegrep
Vzzarr

locate/folder/path/*.sql正規表現ではなく、などのglob表現に一致します。
デビッドフォースター

申し訳ありませんが、man locate私が得た-r, --regexp REGEXP - Search for a basic regexp REGEXPので、それは正規表現だと思いました。とにかく私はあなたの「グローバル表現」を試してみましたが、うまくいきません。ごめんなさい
Vzzarr

あなたは、オプションsynposisから-選ぶ桜を開始する前に、少なくとも説明の最初のいくつかの文章をお読みください:「もしが--regex指定されていない場合、PATTERNsがグロブ文字を含めることができます。」(ソース
デビッド・フェルスター
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.