回答:
このようなコマンドを使用して、ディレクトリおよびサブディレクトリ内のすべての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
他の人が言ったように、findが答えです。
次に、他の部分に答えます。
これらのファイルをすべて削除するにはどうすればよいですか?
見つける。-iname * .pdf -exec rm {} \;
それを行う必要があります。
ls -l
ファイルサイズ、所有権、日付などを表示するコマンドに類似した出力が必要な場合にfind
備えて、-ls
オプションを使用できます。たとえば、find . -name \*.pdf -ls