玩e2fsprogs时debugfs
,由于更改/意外,filen/ame
创建了一个名为的文件。显然,斜杠字符/
用作路径名中的特殊分隔符。
仍在使用时,debugfs
我想删除名为的文件filen/ame
,但由于将/
字符不解释为文件名的一部分,因此收效甚微?
debugfs是否提供一种删除包含斜杠的文件的方法?如果可以,怎么办?
我用了:
cd /tmp
echo "content" > contentfile
dd if=/dev/zero of=/tmp/ext4fs bs=1M count=50
mkfs.ext4 /tmp/ext4fs
debugfs -w -R "write /tmp/contentfile filen/ame" /tmp/ext4fs
debugfs -w -R "ls" /tmp/ext4fs
输出:
debugfs 1.43.4 (31-Jan-2017)
2 (12) . 2 (12) .. 11 (20) lost+found 12 (980) filen/ame
我尝试以下删除filen/ame
文件:
debugfs -w -R "rm filen/ame" /tmp/ext4fs
但这没有用,只能产生:
debugfs 1.43.4 (31-Jan-2017)
rm: File not found by ext2_lookup while trying to resolve filename
除了手动更改目录节点的内容外,还可以使用删除文件debugfs
吗?
+1,恭喜。您已经找到了“文件名中的奇怪字符”的仅有两种情况之一,在这种情况下,仅在shell命令中正确地引用和/或转义该字符不能解决问题。(另一个是文件名中的空字节,尽管我怀疑在大多数文件系统上,这只会截断该名称。)
—
Ilmari Karonen
filen\/ame
)无效吗?