Ich habe eine lästige kleine Datei, deren Name ein einzelnes Zeichen zu sein scheint, und dieses Zeichen ist ein \r
Wie kann ich das löschen?
Das bekomme ich mit ls -bl
:
-rw-rwxr--+ 1 root snapplewriters 0 Aug 29 2011 \r
ls -l
zeige es einfach an "?"
linux
bash
filesystems
Colin
quelle
quelle
Antworten:
Ihnen
ls -li
die Inode - Nummer für die Datei zu erhalten (erste Spalte), dann verwenden Siefind
es zu löschen (vorausgesetzt Inode ist 12345):find . -inum 12345 -exec rm -i {} \;
quelle
find
installierten Version können Sie auchfind . -inum 12345 -delete
Verwenden Sie ANSI-C-Anführungszeichen:
rm $'\r'
http://www.gnu.org/software/bash/manual/bashref.html#ANSI_002dC-Quoting
quelle
Ich würde persönlich nach Python greifen:
Sie können dies aber auch über die Shell tun, wenn Sie Escape-Zeichen verstehen.
quelle
Eine weitere schnelle Möglichkeit, eine aufgerufene Datei zu entfernen,
<carriage return>
wenn Sie die Bash-Shell verwenden, ist:quelle
Einstellige Dateinamen sind ungewöhnlich. Wenn Sie keine anderen derartigen Dateien in Ihrem Verzeichnis haben, können Sie Folgendes versuchen:
Ich bin zu faul, um zu lernen oder nachzuschlagen, wie man seltsame Zeichen zitiert, deshalb habe ich einige Male Varianten davon verwendet, als ich mit Dateien mit schwierigen Namen feststeckte.
quelle
man bash
. Versuchen Sietouch a b c d $'\r'; rm ?