移动以单个字符(反引号)作为名称的目录

移动以单个字符(反引号)作为名称的目录

如何移动名称仅为空格的目录?

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

否则它不会被视为参数。

相关内容