Saya memiliki file kecil sial yang namanya tampak satu karakter, dan karakter itu adalah a \r
Bagaimana saya bisa menghapus ini?
Inilah yang saya dapatkan ls -bl
:
-rw-rwxr--+ 1 root snapplewriters 0 Aug 29 2011 \r
ls -l
cukup tampilkan "?"
linux
bash
filesystems
Colin
sumber
sumber
Jawaban:
Kami
ls -li
mendapatkan nomor inode untuk file (kolom pertama), lalu gunakanfind
untuk menghapusnya (dengan asumsi inode adalah 12345):find . -inum 12345 -exec rm -i {} \;
sumber
find
diinstal, Anda juga bisa melakukannyafind . -inum 12345 -delete
gunakan kutipan ANSI-C:
rm $'\r'
http://www.gnu.org/software/bash/manual/bashref.html#ANSI_002dC-Quoting
sumber
Saya pribadi akan meraih Python:
Tetapi Anda juga dapat melakukan ini dari shell jika Anda memahami karakter melarikan diri.
sumber
Cara cepat lain untuk menghapus file yang dipanggil
<carriage return>
jika Anda menggunakan Bash shell adalah:sumber
Nama file karakter tunggal tidak biasa, dan jika Anda tidak memiliki file lain di direktori Anda, Anda dapat mencoba ini:
Saya terlalu malas untuk belajar atau mencari cara mengutip karakter aneh, jadi saya telah menggunakan varian ini beberapa kali ketika saya terjebak dengan file dengan nama yang sulit.
sumber
man bash
. Cobatouch a b c d $'\r'; rm ?