特定のディレクトリからファイルを再帰的に削除したい。だから、私は使用しました
find . -wholename "*.txt" -delete
を使用してファイルを削除することもできます
rm -rf *.txt
rmと??を使用したファイルの削除の違いは何findですか??
特定のディレクトリからファイルを再帰的に削除したい。だから、私は使用しました
find . -wholename "*.txt" -delete
を使用してファイルを削除することもできます
rm -rf *.txt
rmと??を使用したファイルの削除の違いは何findですか??
find . -name abd.txt -deleteabd.txtのディレクトリツリーのどこかにある、指定されたすべてのファイルを削除しようとします.
find . -wholename abd.txt -deleteabd.txtのディレクトリ ツリー内のどこかにフル パス名を持つすべてのファイルを削除しようとします。.
そのようなファイルは決して存在しません: を使用すると、find .見つかったファイルのすべてのフルパス名が で始まる./ため、現在のディレクトリ内のファイルでさえabd.txtpath という名前になり./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