如何移动名称仅为空格的目录?
ls -lah
drwx------ 4 user1 user1 8.0K Mar 13 14:16 .
drwxr-xr-x 3 root root 60 Mar 13 13:48 ..
drwx------ 18 user1 user1 4.0K Mar 13 11:18
这是病毒的杰作,我想撤销它。
更新:我不能确定那个角色是什么。当我尝试像空间一样移动它时,它不起作用
$mv ' ' test
mv: cannot stat ` ': No such file or directory
更新:这不是重复的删除没有名称的文件,尽管在这种情况下目录和文件的行为非常相似。
答案1
一种可能的方法是找到目录的索引节点号,并将其用于mv
该目录。您没有告诉我们您正在使用什么平台,因此您可能需要修改这些建议以适合您可用的工具(我使用的是 FreeBSD)。
使用ls
实用程序获取索引节点号 --i
交换机在 FreeBSD 上执行此操作:
$ ls -i
106739 test
(test
是我刚刚创建的一个空目录,用于说明此解决方案)
现在,您可以使用该find
实用程序查找具有索引节点号的目录:
$ find . -inum 106739
./test
并移动麻烦的目录:
$ find . -inum 106739 -exec mv {} fixed \;
find: ./test: No such file or directory
不要担心错误消息 - 发生这种情况是因为目录索引在命令执行过程中发生了变化,所以find
会有点混乱;该目录已重命名为fixed
:
$ find . -inum 106739
./fixed
正如我所说,您可能需要查阅本地文档才能获得正确的开关,但这种方法应该可行。
答案2
您可以使用:
mv ' ' <where you want to move>
答案3
你需要找出它的名字,也许是通过类似的东西
ls | od -c
另一件要尝试的事情是mv ? somewhere
(如果名称是一个字符),mv ?? somewhere
(如果有两个字符),...上面的od(1)
命令应该告诉长度,或者来自ls -b
输出。
如果名称确实是“ ”(一个空格),mv ' ' somewhere
则可以。
答案4
使用美元符号来防止空格字符被解析,即
mv $' ' /path/to/folder
否则它不会被视为参数。