ヒント:

ヒント:

私のハードドライブには、回復プログラムによって作成された約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-inameAFP_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独自の文化と考えています。それ以外の文字だけです(ファイル名の最初の文字でない限り)。

関連情報