![交互式删除文本文件中列出的路径的文件](https://linux22.com/image/86652/%E4%BA%A4%E4%BA%92%E5%BC%8F%E5%88%A0%E9%99%A4%E6%96%87%E6%9C%AC%E6%96%87%E4%BB%B6%E4%B8%AD%E5%88%97%E5%87%BA%E7%9A%84%E8%B7%AF%E5%BE%84%E7%9A%84%E6%96%87%E4%BB%B6.png)
我正在尝试以交互方式删除文本文件中列出的文件及其路径。
我正在尝试的命令是:
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。)