我有一个清单文件,它只是一个换行符分隔的文件名的列表.如何从文件夹中删除清单中未命名的所有文件?
我试图建立一个find ./! -name“filename”命令动态地:
command="find ./ ! -name \"MANIFEST\" " for line in `cat MANIFEST`; do command=${command}"! -name \"${line}\" " done command=${command} -exec echo {} \; $command
但文件仍然存在.
[注意]我知道这使用回声.我想检查我的命令在使用它之前.
ls -1 > ALLFILES sort MANIFEST MANIFEST ALLFILES | uniq -u | xargs rm
没有临时文件:
ls -1 | sort MANIFEST MANIFEST - | uniq -u | xargs rm
两者都忽略文件是否排序/不.
使用
http://www.pixelbeat.org/cmdline.html#sets中的“设置差异”模式
(find ./ -type f -printf "%P\n"; cat MANIFEST MANIFEST; echo MANIFEST) | sort | uniq -u | xargs -r rm