特定のファイルを再帰的に削除するには、rmまたは単純なものを使用しますか?

特定のファイルを再帰的に削除するには、rmまたは単純なものを使用しますか?

pair.txtというテキストファイルを含むルートフォルダがあります。

ルートフォルダには、pair.txtというテキストファイルを含む他のフォルダがあります。

削除する簡単な方法はありますかrm

使用できることを知っていますが、他の方法、多分別のワイルドカードをfind . -name 'pairs.txt' -exec rm {} \;使用する方法を知りたいです。*

を使ってみましたが、現在のディレクトリにあるものだけがrm -rf pairs.txt削除されているようです。pairs.txt

答え1

バッシュ 4+ 使用:

shopt -s globstar dotglob
rm -- **/pairs.txt

このglobstarオプションは**複数のディレクトリレベルと一致できます。このオプションを使用すると、名前が(dotfile)で始まるディレクトリがdotglob含まれます。.

ksh93set -o globstarの場合shopt -s globstar. 同じ効果を得るdotglobにはFIGNORE=.

zshの場合は、2行目を直接使用してください。ドットファイルを含めるには、setopt glob_dotsまず2行目を実行または作成しますrm -- **/pairs.txt(D)

bashは**ディレクトリへのシンボリックリンクに従います。 Kshとzshの場合はそうではありません。

答え2

ls -1R / | grep -e "/pairs.txt$" | xargs rm

関連情報