无法删除带回车的文件

无法删除带回车的文件

我有一个文件blahblah\r\n.txt想要删除,但在收到消息rm blahblah\r\n.txt时不起作用。No such file or directory

怎么去除??

答案1

您可以将字符串括起来$''以启用其中转义序列的解释(在本例中启用 的解释\r):

rm $'file\rwith_carriage_return'
% touch $'file\rwith_carriage_return'
% ls
file?with_carriage_return
% rm $'file\rwith_carriage_return'
% ls
% 

答案2

在几种可用的方法中,一种是找到索引节点号,然后删除它。

$ mkdir -p ~/tmp/asdf
$ cd !$
cd ~/tmp/asdf
$ touch `head -c 32 /dev/random` # newlines are boring
$ find . -type f -ls
5636303    0 -rw-r--r--   ...
$ find . -maxdepth 1 -inum 5636303 -exec rm '{}' \;

答案3

如果转义文件名,应该可以删除该文件: rm 'bla\n.txt'

但如果这不起作用,请尝试按 inode 编号删除:

ls -i bla*
1234 bla\n.txt
find . -inum 1234
#make sure the right file and only the right file is returned then
find . -inum 1234 -delete

答案4

我删除了,rm *.*但我仍然想知道为什么rm blahblah\r\n.txt并且rm blahblah*.txt不起作用。

相关内容