交互式删除文本文件中列出的路径的文件

交互式删除文本文件中列出的路径的文件

我正在尝试以交互方式删除文本文件中列出的文件及其路径。

我正在尝试的命令是:

xargs rm -i <filelist.txt

我得到的错误是:

rm cannot remove 'directory1/directory2/filename.extension\r': No such file or directory.  

我怀疑\r添加到文件名末尾的 表示出了什么问题,但我不知道它可能意味着什么。

我也尝试过:

xargs -rd '\n' --arg-file=filelist.txt rm -i --

结果完全相同。

filelist.txt文件以以下格式列出:当前目录中的directory1/directory2/filename.extension 位置。directory1

答案1

您的文件列表使用CRLF行结尾,而不是标准LF,因此\r在错误消息中。尝试:

xargs -rd '\n' --arg-file=<(<filelist.txt tr -d '\r') rm -i --

(假设您的 shell 有进程替换,即 ksh、bash 或 zsh。)

相关内容