2012-09-26 11 views
9

可能性の重複を.txtファイルを削除します。
Command line: piping find results to rm見つけ、bashで

は最近ほとんどはとにかくDVDにしている(その上に私の写真と私の外付けハードドライブをアップfrigged、しかし。 。)いくつかのパーティションfriggeryによって。

幸いなことに、PhotoRecの別のUnixパーティションユーティリティとPDiskを一緒に戻すことができました。

PhotoRecは.txtファイルから重要な.NEFに何千ものチョークを持っています。

OSX Finderが十億個の.txtファイルを選択して削除するような要求のために単純に崩れてしまうので、私はunixを使って簡単に並べ替えようとしました。

しかし、txtファイルを見つけて削除しようとしたときにBSに遭遇したり、すべてのjpegを見つけて再帰的にjpegsという新しいフォルダに移動したりしました。私はUNIXのnoobですので、私はいくつかの援助をお願いします。

ここは私がbashでしたものです。 (私はディレクトリ内に、私が実行する必要のあるすべてのフォルダとファイルをリストするでしょう)。

find。 -name * .txt | rm

または

sudo find。 -name * .txt | rm -f

私はファイルをリンク解除するために必要なBSを私に渡しています。なんでも。

すべての.txtファイルを再帰的に検索し、それらを削除することを推奨します。

ありがとうございました。

+0

あなたのUNIXコマンドに-Rオプションを追加します。 'find。 -name * .txt | rm -Rf' http://www.computerhope.com/unix/urm.htm – Sense

答えて

15

rmにファイル名をパイプすることはできません。代わりにxargsを使用する必要があります。また、ファイルパターン".txt"を引用することを忘れないでください。そうしないと、シェルがファイルを展開します。

find . -name "*.txt" | xargs rm 
+0

これは.txtファイルの世話をしているようです。何らかの理由で、私はそこでいくつかのtxtファイルが残っていた場所に行った。多分、私のbashタイトルバーがrmとmvを前後に動かしていたときに、早くから私はC'dしていたでしょう。とにかく感謝してくれた。私はファイルパターンを引用するようにします(Lynda OSX Unixのチュートリアルにはありません)。 – Propagator

+2

これは、ファイル名にスペースがある可能性があります。彼らのfind/xargsコンボがそれを処理するなら、これはより良いでしょう: 'find。 -name "* .txt" -print0 | xargs -0 rm'を実行してASCII NUL終了文字列を作成します。 –

+0

はい、本当にありがとうございます。 Finderは.txtファイルを見つけることができません。驚くばかり。 – Propagator

13
find . -name "*.txt" -exec rm {} \; 
+0

これは{}のために覚えにくいです。最後のビジネス –

+0

これは本当かもしれませんが、この構文を覚えていれば、 'find'コマンドが何を返しても、多くの一般的な処理を行うことができます。 – mana

5
$ find . -name "*.txt" -type f -delete 
関連する問題