2016-03-19 9 views
1

findを使用していくつかのファイルを削除しようとしています。findを使用していくつかのファイルを削除します

find/-name "file1" -o -name "file2" -delete

私の問題は、それが「FILE1」を見つけたが、それを削除しない場合は、この行は、単に「FILE2」がtrueを返すということです。

括弧を使用しようとしましたが、機能しません。

答えて

2

"かっこを使用しようとした"ときにコマンドラインがどのように表示されていません。あなたが書くとき:

オーダー・オブ・オペレーションは、表現が効果的になることを意味:

(-name "file1") -o (-name "file2" -delete) 

だから、もちろんそれだけで file2を削除します。カッコを変更すると、うまくいくはずです。

find/\(-name "file1" -o -name "file2" \) -delete 
+0

申し訳ありません。今回が初めてです。あなたの解決策も機能していません。この方法では、リストの最後のファイルでさえ、何も削除しません。 – bob

+0

@bob '-delete'を' -print'に置き換え、結果を投稿します。何も見つからない場合、見つかるものはありません。おそらく、ファイル名には他にもいくつかの文字があります。 – BroSlow

+0

私は何かを見つけました。リスト内のファイルだけを使用すると、すべてが完璧に動作します。フォルダがある場合、何も削除されません。しかし、フラグ '-print'は常に動作します。 – bob

関連する問題