特定のディレクトリからファイルを再帰的に削除したい。だから、私は使用しました
find . -wholename "*.txt" -delete
を使用してファイルを削除することもできます
rm -rf *.txt
rm
と??を使用したファイルの削除の違いは何find
ですか??
特定のディレクトリからファイルを再帰的に削除したい。だから、私は使用しました
find . -wholename "*.txt" -delete
を使用してファイルを削除することもできます
rm -rf *.txt
rm
と??を使用したファイルの削除の違いは何find
ですか??
find . -name abd.txt -delete
abd.txt
のディレクトリツリーのどこかにある、指定されたすべてのファイルを削除しようとします.
find . -wholename abd.txt -delete
abd.txt
のディレクトリ ツリー内のどこかにフル パス名を持つすべてのファイルを削除しようとします。.
そのようなファイルは決して存在しません: を使用すると、find .
見つかったファイルのすべてのフルパス名が で始まる./
ため、現在のディレクトリ内のファイルでさえabd.txt
path という名前になり./abd.txt
、一致しません。
find . -wholename ./abd.txt -delete
は、現在のディレクトリにある という名前のファイルを削除しますabd.txt
。
find -wholename ./abd.txt -delete
同じことをします。
abd.txt
が空でないディレクトリの場合、削除は失敗します。
(GNU find 4.6.0 で上記を試しました。他のバージョンでは動作が異なる場合があります。)
rm -rf abd.txt
また、現在のディレクトリで削除を試みabd.txt
ます。空でないディレクトリの場合は、そのディレクトリとその中のすべてを削除します。
でこれを行うにはfind
、次を使用できます
find . -depth \( -wholename ./abd.txt -o -wholename ./abd.txt/\* \) -delete
現在のディレクトリの下にあるすべてのファイルをfind -wholename GLOBPATTERN
(深さに関係なく) 一致させようとしますが、コマンドで使用したグロブは、現在のディレクトリの直下(深さ 1) にrm
あるファイルに対してのみ一致します。
ところで。ディレクトリを再帰的に削除したい場合-r
を除いて、スイッチは必要ありません(拡張機能のため、通常のファイルのみを削除したいと思います)rm
.txt