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.


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.


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'?

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.



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.

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.