web-dev-qa-db-ja.com

条件付きの再帰的ls

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

ls -R *.pdf

編集

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

17
Tomba

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

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


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

検索はあなたの答えです。

find . -name \*.pdf

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

find . -iname \*.pdf

foo.PDFなどのすべての.pdfファイルをリストします

また、lsを使用してサブフォルダーの数を制限することもできます。次に例を示します。

ls *.pdf */*.pdf

サブフォルダー内のすべてのpdfファイルを検索します(bar/foo.pdfと一致し、bar/foo/asdf.pdfとは一致せず、foo.PDFとは一致しません)。

Findで見つかったファイルを削除したい場合は、

find . -iname \*.pdf -delete
22
Olli

他の人が言ったように、見つけることが答えです。

今、他の部分に答えるために。

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

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

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

2
Matt H

Lsの代わりにfindを使用する

find . -name '*.pdf'
1
vartec