Mam nieznośny mały plik, którego nazwa wydaje się być pojedynczym znakiem, a ta postać to \r
Jak mogę to usunąć?
Oto, co otrzymuję ls -bl
:
-rw-rwxr--+ 1 root snapplewriters 0 Aug 29 2011 \r
ls -l
po prostu wyświetl to „?”
linux
bash
filesystems
Colin
źródło
źródło
Odpowiedzi:
Z nami
ls -li
, aby uzyskać numer i-węzła dla pliku (pierwsza kolumna), a następnie użyćfind
go usunąć (zakładając-węzeł jest 12345):find . -inum 12345 -exec rm -i {} \;
źródło
find
zainstalowanej wersji można również zrobićfind . -inum 12345 -delete
użyj cytowania ANSI-C:
rm $'\r'
http://www.gnu.org/software/bash/manual/bashref.html#ANSI_002dC-Quoting
źródło
Osobiście sięgnąłbym po Python:
Ale możesz to również zrobić z powłoki, jeśli rozumiesz znaki ucieczki.
źródło
Innym szybkim sposobem na usunięcie pliku o nazwie,
<carriage return>
jeśli używasz powłoki Bash, jest:źródło
Nazwy plików jednoznakowych są niezwykłe, a jeśli nie masz żadnych innych takich plików w katalogu, możesz spróbować:
Jestem zbyt leniwy, by uczyć się lub sprawdzać, jak cytować dziwne postacie, więc wielokrotnie korzystałem z tego wariantu, gdy utknąłem w plikach o trudnych nazwach.
źródło
man bash
. Spróbujtouch a b c d $'\r'; rm ?