回答:
または...
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.dbUbuntuですぐに設定できない最新のインスタンスが必要です(私は信じています)。また、なぜ単純ではないのですlocate '/folder/path/*.sql'か?
locateに使用される正規表現から、いくつかの異なる設定を持っているegrep
locate/folder/path/*.sql正規表現ではなく、などのglob表現に一致します。
man locate私が得た-r, --regexp REGEXP - Search for a basic regexp REGEXPので、それは正規表現だと思いました。とにかく私はあなたの「グローバル表現」を試してみましたが、うまくいきません。ごめんなさい
--regex指定されていない場合、PATTERNsがグロブ文字を含めることができます。」(ソース)