我已将要删除的文件的名称列出到文件中。我怎样才能将文件传递给rm
命令,以便它应该一一删除它们。
答案1
如果每行一个文件,一种方法是:
tr '\n' '\0' < list_of_files_to_be_deleted.txt | xargs -0 -r rm --
文件列表作为命令的输入给出,tr
该命令将文件分隔符从换行更改为空字节,并且该xargs
命令读取输入上由空字节分隔的文件,并启动 rm 命令,并将文件附加为参数。
答案2
上面的答案很好,因为它竭尽全力处理带有空格和“奇怪字符”的文件名。但如果文件名正常的话,最简单的方法就是(警告,羞辱!):
rm $(< /the/file/with/names)
对于常规外壳:
rm `cat /the/file/with/names`