回答:
または...
find $directory_name -name \*.sql
例えば
find / -name \*.sql
または
find ~ \*.sql
(ここで〜は/ home / your_username /と同じ)、または...
find /usr/local/share/ \*.sql
などなど。
これをコマンドラインで実行します。
cd / && find | grep '\.sql$'
「/」を検索するディレクトリに変更します。
このfind
コマンドはgrepなしでタスクを実行できます(追加のオプションを使用)が、上記の使用法の方が便利だと思います。
順番に、上記のコマンド:
cd /
)find
)| grep '\.sql$'
)で終わるファイルとディレクトリをフィルターしますfind
すでにフィルタ機能を持っている
私はこれが古い投稿であることを知っていますが、私はこれにかなり新しく、ディレクトリとその子サブディレクトリ内の特定の拡張子のすべてのファイルを見つける簡単な方法を見つけました。さて、あなたに最初にナビゲートしparent Directory
、その後find . -name '*.sql'
、それはあなたが持つすべてのファイルがあります.SQLディレクトリとそのサブディレクトリに拡張子を。
私の場合、ディレクトリとそのサブディレクトリ内のすべての.xmlファイルを削除したいので、ここでのように削除を追加しましたfind . -name '*.xml' | xargs rm
これが誰かを助けることを願っています:)
find
-delete
コマンドを理解します。関与する必要はありませんrm
。または-exec
、パイプとを迂回せずにコマンドを直接呼び出すことができますxargs
。
locate -br \\.sql$ | egrep '^/folder/path/'
インストールされていない場合は、以前に以下を使用してインストールします。
sudo apt install mlocate
mlocate.db
Ubuntuですぐに設定できない最新のインスタンスが必要です(私は信じています)。また、なぜ単純ではないのですlocate '/folder/path/*.sql'
か?
locate
に使用される正規表現から、いくつかの異なる設定を持っているegrep
locate
/folder/path/*.sql
正規表現ではなく、などのglob表現に一致します。
man locate
私が得た-r, --regexp REGEXP - Search for a basic regexp REGEXP
ので、それは正規表現だと思いました。とにかく私はあなたの「グローバル表現」を試してみましたが、うまくいきません。ごめんなさい
--regex
指定されていない場合、PATTERN
sがグロブ文字を含めることができます。」(ソース)