我有一個清單文件,它只是換行符分隔的文件名列表。如何從文件夾中刪除名單中名爲而非的所有文件?BASH:如何刪除清單中指定的所有文件?
我試圖動態生成一個find ./ ! -name "filename"
命令:
command="find ./ ! -name \"MANIFEST\" "
for line in `cat MANIFEST`; do
command=${command}"! -name \"${line}\" "
done
command=${command} -exec echo {} \;
$command
但文件仍保留。
[注意:]我知道這使用回聲。我想在使用它之前檢查我的命令的功能。
解決方案:(感謝PixelBeat)
ls -1 > ALLFILES
sort MANIFEST MANIFEST ALLFILES | uniq -u | xargs rm
沒有臨時文件:
ls -1 | sort MANIFEST MANIFEST - | uniq -u | xargs rm
兩個忽略的文件是否排序/沒有。
謝謝大家!我將它提供給pixelbeat,以便他的外殼指南持有解決方案 – brice 2010-05-08 11:57:08