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

mon*_*onu 12 linux rm

我已经列出了要删除到文件中的文件的名称。如何将文件传递给rm命令,以便它应该一一删除它们。

Jon*_*lin 12

如果每行有一个文件,一种方法是:

tr '\n' '\0' < list_of_files_to_be_deleted.txt | xargs -0 -r rm --
Run Code Online (Sandbox Code Playgroud)

文件列表作为tr命令的输入,该命令将文件分隔符从换行符更改为空字节,该xargs命令读取输入时由空字节分隔的文件,并启动 rm 命令,并将文件附加为参数。


von*_*and 6

上面的答案很好,因为它不遗余力地处理带有空格和“奇怪字符”的文件名。但最简单的方法,如果文件名是合理的,就是(警告,bashism!):

rm $(< /the/file/with/names)
Run Code Online (Sandbox Code Playgroud)

对于常规外壳:

rm `cat /the/file/with/names`
Run Code Online (Sandbox Code Playgroud)