blahblah\r\n.txt
삭제하고 싶은 파일이 있는데 rm blahblah\r\n.txt
메시지를 받았을 때 작동하지 않습니다.No such file or directory
그것을 제거하는 방법? ?
답변1
문자열을 묶어서 $''
이스케이프 시퀀스를 해석할 수 있습니다(이 예에서는 해석이 가능함 \r
).
rm $'file\rwith_carriage_return'
% touch $'file\rwith_carriage_return'
% ls
file?with_carriage_return
% rm $'file\rwith_carriage_return'
% ls
%
답변2
사용 가능한 여러 방법 중 하나는 inode 번호를 찾아 삭제하는 것입니다.
$ mkdir -p ~/tmp/asdf
$ cd !$
cd ~/tmp/asdf
$ touch `head -c 32 /dev/random` # newlines are boring
$ find . -type f -ls
5636303 0 -rw-r--r-- ...
$ find . -maxdepth 1 -inum 5636303 -exec rm '{}' \;
답변3
파일 이름을 이스케이프하면 파일을 삭제할 수 있습니다.
rm 'bla\n.txt'
하지만 그래도 작동하지 않으면 inode 번호로 삭제해 보세요.
ls -i bla*
1234 bla\n.txt
find . -inum 1234
#make sure the right file and only the right file is returned then
find . -inum 1234 -delete
답변4
제거했지만 왜 작동하지 않는지 여전히 rm *.*
궁금합니다 .rm blahblah\r\n.txt
rm blahblah*.txt