プロンプトなしでディレクトリから書き込み可能なファイルのみを削除するにはどうすればよいですか?

プロンプトなしでディレクトリから書き込み可能なファイルのみを削除するにはどうすればよいですか?

ディレクトリから書き込み可能なファイルだけを削除したいです。もし私がするなら

rm *

書き込み可能なすべてのファイルを削除しますが(これまでは問題ありませんでした)、書き込み不可能なすべてのファイルに対してプロンプトが表示されます。プロンプトは不要で、書き込み不可能なファイルを保持したいと思います。

書き込み不可能なファイルを削除するので、答えは「rm -f」ではありません。

それでは、削除する簡単なコマンドはありますか?ただ書き込み可能なファイルですが、メッセージが表示されませんか?

ベストアンサー1

私はrmこれが個別に行われていないと思い、オプションに明確なマークはありません。

findとを混合することでrm達成できます。

find -maxdepth 1 -type f -writable -exec rm {} +

例えば、

tony@trinity:~/temp$ ls -l
total 0
tony@trinity:~/temp$ touch bob
tony@trinity:~/temp$ touch bill
tony@trinity:~/temp$ touch fred
tony@trinity:~/temp$ chmod 400 fred
tony@trinity:~/temp$ ls -l
total 0
-rw-r--r-- 1 tony tony 0 Mar 10 20:19 bill
-rw-r--r-- 1 tony tony 0 Mar 10 20:19 bob
-r-------- 1 tony tony 0 Mar 10 20:19 fred
tony@trinity:~/temp$ mkdir test
tony@trinity:~/temp$ cd test
tony@trinity:~/temp/test$ touch chris
tony@trinity:~/temp/test$ cd ..
tony@trinity:~/temp$ ls -lR
.:
total 4
-rw-r--r-- 1 tony tony    0 Mar 10 20:19 bill
-rw-r--r-- 1 tony tony    0 Mar 10 20:19 bob
-r-------- 1 tony tony    0 Mar 10 20:19 fred
drwxr-xr-x 2 tony tony 4096 Mar 10 20:19 test

./test:
total 0
-rw-r--r-- 1 tony tony 0 Mar 10 20:19 chris
tony@trinity:~/temp$ find -maxdepth 1 -type f -writable -exec rm {} +
tony@trinity:~/temp$ ls -lR
.:
total 4
-r-------- 1 tony tony    0 Mar 10 20:19 fred
drwxr-xr-x 2 tony tony 4096 Mar 10 20:19 test

./test:
total 0
-rw-r--r-- 1 tony tony 0 Mar 10 20:19 chris

これは同じようには機能しないため、rm -rサブディレクトリにドロップダウンする場合はこれを再検討する必要があり、作成したとおりにディレクトリはまったく削除されません。

〜のように@ザイルズたとえば、-deleteすべてのタスクを完了するには、このタスクを使用することをお勧めします。find

$ ls -lR
.:
total 4
-rw-r--r-- 1 tony tony    0 Mar 10 23:16 bill
-rw-r--r-- 1 tony tony    0 Mar 10 23:16 bob
-r-------- 1 tony tony    0 Mar 10 20:19 fred
drwxr-xr-x 2 tony tony 4096 Mar 10 20:19 test

./test:
total 0
-rw-r--r-- 1 tony tony 0 Mar 10 20:19 chris
tony@trinity:~/temp$ find -maxdepth 1 -type f -writable -delete
tony@trinity:~/temp$ ls -lR
.:
total 4
-r-------- 1 tony tony    0 Mar 10 20:19 fred
drwxr-xr-x 2 tony tony 4096 Mar 10 20:19 test

./test:
total 0
-rw-r--r-- 1 tony tony 0 Mar 10 20:19 chris

おすすめ記事