elimina o rinomina un file con \ r come nome del file


10

Ho un piccolo file fastidioso il cui nome sembra essere un singolo carattere e quel personaggio è un \r

Come posso cancellarlo?

Questo è quello che ottengo con ls -bl:

-rw-rwxr--+   1 root             snapplewriters        0 Aug 29  2011 \r

ls -l basta visualizzarlo "?"


Come sei finito con un file chiamato così?
mkaito,

Risposte:


16

Us ls -liper ottenere il numero di inode per il file (prima colonna), quindi usarlo findper eliminarlo (supponendo che l'inode sia 12345):

find . -inum 12345 -exec rm -i {} \;


Grazie - questo è estremamente utile - Mi è sembrato che ci fosse una sorta di inequivocabile riferimento al file al file ma non sono riuscito a trovarlo (comunque velocemente).
Colin,

1
A seconda della versione findinstallata, potresti anche farlofind . -inum 12345 -delete
William Jackson,

Per me, più agnostico è la versione, meglio è. Ma un buon suggerimento comunque. :)
Garrett


5

Personalmente raggiungerei Python:

>>> import os
>>> '\r' in os.listdir('.')
True
>>> os.unlink('\r')

Ma puoi anche farlo dalla shell se capisci i caratteri di escape.

$ ls -b $'\r'
\r
$ rm -vi $'\r'
rm: remove regular empty file \r’? y
removed \r

Immagino che tu abbia anche una mazza in cucina? Nel caso abbiate bisogno di rompere un dado? :-)
mivk

3

Un altro modo rapido per rimuovere un file chiamato <carriage return>se stai usando la shell Bash è:

$ rm <control-v><control-m>

2

I nomi dei file a carattere singolo sono insoliti e se non hai altri file simili nella tua directory, puoi provare questo:

rm ?

Sono troppo pigro per imparare o cercare come citare personaggi strani, quindi ho usato varianti di questo un numero di volte in cui ero bloccato con file con nomi difficili.


-1 Questo corrisponde a tutti i file con un solo nome di carattere - Vedi "Espansione percorso" in man bash. Provatouch a b c d $'\r'; rm ?
l0b0,

1
@ l0b0: Sì? Come ho scritto, i nomi dei file a carattere singolo sono insoliti. È abbastanza probabile che non ci siano altri file simili nella directory e, in tal caso, funziona. Altrimenti "rm -i?" può essere utilizzato.
Thomas Padron-McCarthy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.