debugfs
변경 / 사고로 e2fsprogs 를 사용하여 이름 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, 축하합니다. 쉘 명령에서 문자를 정확하게 인용 및 / 또는 이스케이프 처리해도 문제가 해결되지 않는 "파일 이름의 이상한 문자"의 두 가지 경우 중 하나를 발견했습니다. (다른 파일은 파일 이름에 널 바이트가 될 것입니다. 그러나 대부분의 파일 시스템에서는 이름이 잘릴 것이라고 생각합니다.)
—
Ilmari Karonen
filen\/ame
) 이스케이프가 작동하지 않습니까?