Menghapus folder bernama ~

30

Ini adalah output dari ls -l

ls -l
total 53484
drwxr-xr-x 3 root root     4096 2011-02-10 05:59 ~
-rw-r--r-- 1 root root 54313810 2011-02-13 05:09 jobs.jar
-rw-r--r-- 1 root root   384035 2011-02-15 05:33 jobsLog.out

Saya tidak dapat melakukannya rm -rf ~ karena itu akan menghapus direktori home saya.

Apa yang harus saya lakukan? Ini bukan masalah bagi saya, tetapi hanya sakit mata.

theTuxRacer
sumber
8
Saya akan menghindari menulis rm -rfsesuatu yang berpotensi gagal jika Anda salah mengetik. Pertimbangkan memasuki ./~folder Anda dan menghapus isinya dari sana sebelum pindah direktori dan berjalan rmdir ./~untuk menghapus ~ direktori itu sendiri.
adamnfish

Jawaban:

58

rm -R ./~

Itu akan membuatnya terlihat ~di folder saat ini.

Ward Muylaert
sumber
wow, cara melihat hal-hal yang lurus! pujian!
theTuxRacer
2
Jawaban ini benar, tetapi saya pikir jawaban Oli lebih baik karena lebih aman. Jika Anda sedikit salah ketik perintah ini, Anda akan secara permanen membuang sistem Anda.
HDave
44

Saya telah membuat kesalahan konyol dengan rmsebelumnya, jadi inilah beberapa tips yang telah saya pelajari selama bertahun-tahun untuk mencoba dan menjaga data Anda aman dari kecelakaan:

  1. Gunakan solusi grafis seperti Nautilus. Hapus lunak ke tempat sampah. Lalu ketika Anda tahu Anda belum memindahkan Anda $HOMEke tempat sampah (semuanya akan mulai menabrak dan terlihat funky), kosongkan tempat sampah Anda.

  2. Pindahkan alih-alih hapus. Ganti nama direktori dengan mv, misalnya:

    mv ./\~ ./a-nice-sensible-directory-name

    Lalu hapus.

  3. Jika ragu, gunakan -ibendera saat berhadapan dengan potensi fubars. Ini akan meminta Anda untuk setiap file dihapus dan harus memberi tahu Anda dengan cepat jika sesuatu yang buruk akan terjadi.

    oli@bert:~/Desktop$ rm -rfi ./del/
    rm: descend into directory `./del'? y
    rm: remove regular file `./del/output2.pdf'?
Oli
sumber
1
cant GUI, ini terminal ssh: P Ide bagus tentang mv. Saya pikir saya harus membuat alias rm dengan rm -i.
theTuxRacer
7
Anda dapat menyadap ssh://user@ip/foldernautilus. Tidak bekerja untuk semuanya (mis. Jika Anda perlu sudo), tapi begitulah. Aliasing -iadalah pedang bermata dua. Ini membantu tetapi juga sangat menjengkelkan ketika Anda melakukan banyak file. Pertimbangkan -Ijuga. Dan lihatlah man rmtips lainnya.
Oli
+1 untuk gagasan langkah. Sekarang saya bertanya-tanya mengapa tidak ada pengganti drop-in untuk rmyang bergerak ke (katakanlah) ~ / .Trash.
ShreevatsaR
19

Masalah brilian :)

Anda dapat menghapus direktori dengan keluar dari tilde:

rm -rf \~

Ini berfungsi untuk semua jenis karakter khusus.

Stefano Palazzo
sumber
17

Anda cukup memanggang nama folder menjadi apostrof:

 rm '~'
Yuriy Voziy
sumber
6

Cara lain, yang sedikit lebih kompleks, adalah menggunakan nomor inode:

$ ls -li
total 24
 7146369 drwxr-xr-x   4 user  staff   136 Jan 19 21:50 ~
$ find . -xdev -inum 7146369 -exec rm -rf {} \;

Pro

  • Ini bekerja dengan nama mewah apa pun yang dapat Anda miliki.
  • Harus aman karena nomor inode adalah unik ( -xdev: Jangan turun direktori pada sistem file lain) dan Anda dapat menguji pencarian terlebih dahulu, untuk berjaga-jaga, menghapus -exec rm -rf {} \;.

Cons

  • Melakukan find .dalam direktori dengan banyak file dan / atau direktori akan memakan banyak waktu, dan membaca disk.
superfav
sumber
Saya selalu tertarik pada inode, dan bertanya-tanya apakah mungkin untuk melakukannya =)
theTuxRacer
Tentu saja, ini hanya berfungsi jika filesystem Anda saat ini memiliki konsep inode (tidak semua filesystem yang didukung oleh Ubuntu memiliki konsep ini - meskipun sebagian besar yang tidak bukan filesystem Unix asli seperti vFat dan NTFS)
Billy ONeal