저는 페도라 24를 사용하고 있습니다.
나는 이것을하기 위해 다양한 방법을 시도했습니다. Windows VM에서 시도해보고 해당 폴더를 공유 폴더로 만들었습니다.
"이름 바꾸기" 명령을 사용해 보았습니다.
"mv" 명령을 사용해 보았습니다.
"파일"에서 이름을 바꿔 보았습니다.
inode를 사용하여 파일 이름을 변수로 설정한 다음 이름을 바꾸려고 했습니다. (손실된 소스)
26477098 'File | With Pipe.png'
xyz=`ls -i|grep 26477098|sed 's/26477098 //'`
mv "$xyz" File\ --\ With\ Pipe.png
mv: cannot stat 'File | With Pipe.png': No such file or directory
어떤 방법으로 시도하더라도 "해당 파일이나 디렉터리가 없습니다"라는 오류가 계속 발생합니다.
또한 Inode 번호를 사용하여 이름을 바꾸려고 했습니다("mv" 파일의 inode 번호 이름이 깨졌습니까?)
26477098 'File | With Pipe.png'
[user@computer Pictures]$ find . -inum 26477098 -exec mv {} File\ --\ With\ Pipe.png \;
mv: cannot move './File | With Pipe.png' to 'File -- With Pipe.png': No such file or directory
[user@computer Pictures]$ find . -inum 26477098 -print0 | xargs -0 mv -t a.png
mv: failed to access 'a.png': No such file or directory
파일을 열려고 하면 "이미지를 찾을 수 없습니다..."라는 메시지가 나타납니다.
나는 inode에 하드링크한 다음 원본 파일을 삭제하려고 시도할 수 있다고 생각했지만 그렇게 할 수 있는 방법을 찾을 수 없습니다.
어떤 아이디어가 있나요?
*****************************편집하다******************** ******************
[risshuu@centurion Pictures]$ mv "File | With Pipe.png" "File -- With Pipe.png"
mv: cannot stat 'File | With Pipe.png': No such file or directory
[risshuu@centurion Pictures]$ mv File\ \|\ With\ Pipe.png File\ --\ With\ Pipe.png
mv: cannot stat 'File | With Pipe.png': No such file or directory
이와 같은 파일이 많이 있지만 그 중 아무 것도 작동하지 않습니다.
방금 파이프가 포함된 새 파일을 만들었고 파이프를 포함하지 않도록 이름을 바꾸는 것은 문제가 되지 않았습니다. 콘텐츠를 "캡처"하거나 파일을 열 수 없기 때문에 뭔가 다른 일이 벌어지고 있는 것 같습니다. 심지어 아무것도 삭제할 수도 없습니다! 다른 파일 확인 명령이나 사용할 수 있는 것 또는 파일 시스템에서 이러한 파일을 삭제할 수 있는 방법이 있습니까?
답변1
백슬래시를 사용하여 파이프를 벗어날 수 있어야 합니다.
mv te\|st test
아니면 귀하의 경우에는 공간이 있습니다
mv first\ \|\ last first_last
그래도 문제가 해결되지 않으면 큰따옴표를 사용하여 모든 특수 문자를 이스케이프할 수 있습니다.
mv "first | last" first_last