7

OS Xでこれをやりたい:

ls -rt | xargs rm -i

ただし、rm一部のファイルに空白が含まれているという事実に窒息しています。

BSD のバージョンの にはフラグlsがないため、OS X について言及します。-Q

を使用せずにこれを行う方法はありますfind -print0か?

4

5 に答える 5

4
[sgeorge@sgeorge-ld staCK]$ touch "file name"{1..5}.txt
[sgeorge@sgeorge-ld staCK]$ ls -1
file name1.txt
file name2.txt
file name3.txt
file name4.txt
file name5.txt
[sgeorge@sgeorge-ld staCK]$ ls -rt |  xargs -I{} rm -v {}
removed `file name5.txt'
removed `file name4.txt'
removed `file name3.txt'
removed `file name2.txt'
removed `file name1.txt'

また

[sgeorge@sgeorge-ld staCK]$ ls -1
file a
file b
file c
file d

[sgeorge@sgeorge-ld staCK]$ OLDIFS=$IFS; IFS=$'\n'; for i in `ls -1` ; do rm -i $i ; done ; IFS=$OLDIFS
rm: remove regular empty file `file a'? y
rm: remove regular empty file `file b'? y
rm: remove regular empty file `file c'? y
rm: remove regular empty file `file d'? y
于 2013-01-12T05:48:40.337 に答える
1

見つけて削除してください。

find . -print -depth 1 -exec rm -i {} \;

より柔軟で、スペースでも問題ありません。

于 2013-01-12T05:22:11.963 に答える
1

すべてのファイルを削除したい場合、何が問題になっていrm -i *ますか?

解析しないls

于 2013-01-12T11:28:30.550 に答える
0

これを試して

while read -u 3
do
  rm -i "$REPLY"
done 3< <(ls -rt)
于 2013-01-12T05:22:54.143 に答える