私のハードドライブには、回復プログラムによって作成された約300,000 x 3ファイルが含まれています。
これらのファイルの中には、次の形式があります。
.doc.apple.quarantine
以下は簡単に削除できます。
find . -type f -name '*.apple.quarantine' -delete
ところが他の人はこの名言のためにもっと大変だ。
_AFP_Afpinfo
ファイル拡張子の後に書くことができます。
happybirthday.mp3._AFP_afpinfo
そうでなければ
happybirthday_AFP_Afpinfo
次の3番目の種類のファイルを削除したいと思います。
happybirthday_AFP_Afpinfo
だから私の質問は、このUnixコマンドがこれらの文字を含むすべてのファイルを削除することですかAFP_Afpinfo
?
find . -type -f 'AFP_Afpinfo' -delete
私はテストしました
-find . -type -f -name 'epub' -print
ファイルは表示されません。
頑張った
-find -type -f -name 'epub' -print
そして表示されたファイル。したがって、afterの使用はfind
正しくありません。
約 1/2 時間実行した後、次を実行します。
find -type f -name '_AFP_Afpinfo'
次のエラーが表示されます。
find: './.Trash-1000/files': Input/output error
ディレクトリを確認しましたが、AFP_Afpinfo
ファイルがいっぱいです。
答え1
find . -type -f 'AFP_Afpinfo' -delete
不正確または無効な場合 -AFP_Afpinfo
ファイル名の前または後が正確に一致し、フルネームも一致する必要があります(ケースでは大文字と小文字を区別しません)。-name
-iname
AFP_Afpinfo
-iname
_AFP_Afpinfo
名前がピリオドで終わるが前にピリオドがないファイルを見つけるには、次のようにします。
find -type f -name '*[^.]_AFP_Afpinfo'
これは、または以下を除く[^.]
すべての文字を意味します。.
find -type f \( -name '*_AFP_Afpinfo' ! -name '*._AFP_Afpinfo' \)
それらはまったく同じではありません。後者の式は一致します_AFP_Afpinfo
が、前者は文字列の前にピリオド以外の文字が1つ以上必要です。
いずれにせよ強く-print
テストの代わりに最初に使用することをお勧めします-delete
。
答え2
まったくそうではありません。
ヒント:
試験を受ける
-print
代わりにwithを試してください-delete
。
.
ファイル名は特別ではありません。
特別なことはありません.
。ただ普通のキャラクターです。 DOSとCP / Mでは特別ですが、使用しません。 MS-Windows CMDで終わるGlobは.*
特別です。
n.*
するn
- はい、
n.*.*
そうです。n.*
*.*.*
*.*
- これはすべてCP / M / DOSレガシーから来ました。つまり
*.*
、すべてのファイル(すべてのファイル.
には。 - この文化はまだ存在し、多くの人々はそれを
.
Unix独自の文化と考えています。それ以外の文字だけです(ファイル名の最初の文字でない限り)。