如何将一个命令应用于另一个命令产生的带有空格的文件列表?

如何将一个命令应用于另一个命令产生的带有空格的文件列表?

假设我有一个像这样的管道命令:

$ ls -t|tail -n 10

现在,如果我想删除上述命令生成的所有文件,如果文件中有空格,则它将不起作用:

$ rm `ls -t|tail -n 10`
# assuming the first response is 'The File Name', I get:
rm: cannot remove ‘The’: No such file or directory
rm: cannot remove ‘File’: No such file or directory
rm: cannot remove ‘Name’: No such file or directory

在将文件名发送到 rm 之前,如何引用文件名?

答案1

尝试一下这个:

输出带空格的文件的命令| 当 IFS=读取 -r 文件时
  rm "$文件"
完毕

输入将在换行符处拆分,因此名称中带有换行符的文件将不起作用。但使用空格引用名称则不会出现问题。

相关内容