如何对文件中的文件名列表执行命令?

如何对文件中的文件名列表执行命令?

我已将要删除的文件的名称列出到文件中。我怎样才能将文件传递给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`

相关内容