
\;:$"\'
내 소프트웨어를 테스트하기 위해 라는 이름의 파일을 만들었습니다 . 파일 속성을 삭제할 수 없어서 오류가 발생했습니다. 를 통해 제거할 정확한 문자 조합을 찾으려고 하는데 rm
방법을 찾을 수 없습니다.
rm \\;:$\"\\\'
rm: cannot remove `\\': No such file or directory
rm "\\"\;:$\"\\\'
rm: cannot remove `\\;:$"\\\'': No such file or directory
rm '\;:$"\'''
rm: cannot remove `\\;:$"\\': No such file or directory
(이 마지막 시도가 나를 죽였습니다)
그 밖에도 수많은 시도가 있습니다. 도움의 손길이 필요합니다!
답변1
파일 이름이 정확히 이면 다음을 \;:$"\'
사용하여 파일을 제거할 수 있습니다.
rm \\\;\:\$\"\\\'
단일 \
.
답변2
ls -li
파일이 포함된 디렉토리에서 다음을 실행하여 반환된 inode가 있는 파일을 삭제해 볼 수 있습니다.find . -inum <inode-number> -exec rm -i {} \;
-i
find 명령으로 예상한 것보다 다른 파일이 발견될 경우를 대비하여 삭제하기 전에 메시지를 표시하기 위해 find 명령에 를 추가했습니다 .
댓글 외에도 파일을 직접 만들고 제거하려고 했습니다.
ls -l
total 0
-rw-r--r-- 1 test test 0 mrt 24 14:11 \;:$"\'
[test@testhost +1] /tmp/ff$ rm \\\;\:\$\"\\\'
[test@testhost +1] /tmp/ff$ ls -l
total 0
답변3
작은따옴표를 사용할 수 있으며, 그런 다음 작은따옴표 자체를 인용하는 것에 대해서만 걱정하면 됩니다.
rm '\;:$"\'\'
대화형 사용에서는 간단히 '\
또는 로 시작하는 탭 완성을 사용할 수 있습니다 \\
. bash는 '\
삽입 '\;:$"\'\'''
된 모든 작은따옴표를 단순히 '\''
. 아무것도 없거나 \\
Yield 에서 탭 완성 \\\;\:\$\"\\\'
.
답변4
Bash나 다른 쉘 스크립트 환경을 사용하는 데 국한되지 않는 경우, 그러한 파일을 제거하는 쉬운 방법은 아마도 unlink()
선호하는 언어로 간단히 호출하는 짧은 프로그램을 작성하거나 Gnome Commander 또는 Midnight와 같은 파일 관리자를 사용하는 것입니다. 파일을 수동으로 삭제하려면 지휘관이 필요합니다. 후자의 옵션을 사용하면 어디에서나 파일 이름을 입력할 필요 없이 문제의 파일을 선택하고 삭제할 수 있으므로 메타 문자가 특별한 의미를 가질 가능성이 전혀 제거됩니다.