条件付き再帰ls


16

このようなコマンドを使用して、ディレクトリおよびサブディレクトリ内のすべてのpdfファイルを検索できないのはなぜですか?どうすればいいのですか?(ubuntuでbashを使用しています)

ls -R *.pdf

編集

これらのファイルをすべて削除するにはどうすればよいですか?

回答:


22

このようなコマンドを使用して、ディレクトリおよびサブディレクトリ内のすべてのpdfファイルを検索できないのはなぜですか?

*.pdfコマンドのワイルドカードはbash実行するに、現在のディレクトリ内の一致するすべてのファイルに展開されますls


どうすればいいのですか?(ubuntuでbashを使用しています)

あなたの答えです。

find . -name \*.pdf

pdfファイルの再帰的なリストです。-iname大文字と小文字を区別しない一致であるため、

find . -iname \*.pdf

以下を含むすべての.pdfファイルをリストします。 foo.PDF

また、lsを使用して、サブフォルダーの数を制限できます。たとえば、

ls *.pdf */*.pdf

サブフォルダー内のすべてのpdfファイルを検索する(bar / foo / asdf.pdfではなくbar / foo.pdfに一致し、foo.PDFに一致しない)。

findで見つかったファイルを削除する場合は、次を使用できます。

find . -iname \*.pdf -delete

1
ls -lファイルサイズ、所有権、日付などを表示するコマンドに類似した出力が必要な場合にfind備えて、-lsオプションを使用できます。たとえば、find . -name \*.pdf -ls
RFVoltolini

2

他の人が言ったように、findが答えです。

次に、他の部分に答えます。

  • これらのファイルをすべて削除するにはどうすればよいですか?

    見つける。-iname * .pdf -exec rm {} \;

それを行う必要があります。


2
グロブを引用符で囲む必要があります。
追って通知があるまで一時停止します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.