我对可能误导性的标题表示歉意,但这是我能想到的描述问题的最佳方式,即:我有几个可以使用的文件cat
,但是当我尝试使用rm
它们时,我得到“没有这样的文件或目录”错误。
$ cat "A11 D5 D5.txt"
... OUTPUT ...
$ rm -f "A11 D5 D5.txt"
rm: cannot remove `A11 D5 D5.txt': No such file or directory
我尝试覆盖该文件并且可以执行删除而不会出错,但该文件仍然存在;我仍然可以捕获该文件。
$ echo "Boom" > "A11 D5 D5.txt"
$ cat "A11 D5 D5.txt"
Boom
$ rm -f "A11 D5 D5.txt"
$ cat "A11 D5 D5.txt"
Boom
$ rm -f "A11 D5 D5.txt"
rm: cannot remove `A11 D5 D5.txt': No such file or directory
我完全不知所措。我怀疑重新启动可以解决问题,但我真的更感兴趣的是为什么会发生这样的事情。某种文件系统问题? (我没有系统的重新启动权限;它是一个大学集群。)
编辑:我得到以下输出
$ ls
A11 D5 D5.txt
$ ls -b
A11\ D5\ D5.txt
$ printf '<%q>\n'
<''>
我还stat
编辑了该文件(以防万一):
$ stat A11\ D5\ D5.txt
File: `A11 D5 D5.txt'
Size: 5 Blocks: 8 IO Block: 131072 regular file
Device: 1bh/27d Inode: 18446744068941111933 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 596/ <username>) Gid: ( 1015/<group>)
Access: 2012-12-09 22:48:29.000000000 -0600
Modify: 2012-12-09 22:56:44.835662498 -0600
Change: 2012-12-09 22:56:44.835662498 -0600
编辑2:文件系统显然是“fuse”类型并且
$ ls -lb A11\ D5\ D5.txt
-rw-r--r-- 1 <username> <group> 5 Dec 9 22:56 A11\ D5\ D5.txt
答案1
如果您认为文件名中有一些看不到的特殊字符,您可以尝试使用工具来确定文件名。
ls | xargs -i rm -i {}
或者
find . -exec rm -i {} \;