我正在尝试以交互方式删除文本文件中列出的文件及其路径。
我正在尝试的命令是:
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。)