batalkan rm Linux? [duplikat]

31

Kemungkinan Duplikat:
UNDO LINUX Trash Command

Hai,

Apakah ada cara sederhana untuk membatalkan rmperintah?

Pertanyaannya murni teoretis; Saya TIDAK PERNAH menghapus log antrian patokan yang membutuhkan waktu makan siang keseluruhan untuk dijalankan.

Adam Matan
sumber
1
... atau paling tidak sangat erat hubungannya, bahkan jika pertanyaan itu sendiri dirumuskan untuk menjadi sedikit lebih umum
Jonik

Jawaban:

33

Di ubuntu atau yang serupa:

$ sudo apt-get install trash-cli
$ alias rm=trash

Lalu masukkan alias itu di .bashrc atau skrip login yang sesuai untuk pilihan Anda.

The trash-clipaket antarmuka baris perintah untuk sampah yang sama dapat bahwa GNOME dan KDE dan lainnya digunakan. Jadi apa pun yang Anda hapus melalui trashperintah dapat dipulihkan oleh GNOME / KDE dan sebaliknya.

Perintah lain dalam trash-clipaket yang trash-list, trash-empty, dan restore-trash.

Ryan C. Thompson
sumber
11
+1 untuk trash-cli, -1 untuk aliasing rm.
1
Apa yang salah dengan aliasing rm? Saya suka memiliki tombol undo untuk penghapusan tidak disengaja saya, bahkan pada baris perintah. Juga, trash-clisecara eksplisit memfasilitasi ini dengan menerima (dan mengabaikan) banyak rmopsi GNU . Selain itu, OP meminta cara untuk membatalkan. Solusi ini tidak menjawab pertanyaan dengan benar tanpa alias.
Ryan C. Thompson
15
@Ryan: Karena Anda terbiasa dengan rm untuk mengartikan sesuatu yang berbeda dari apa yang benar-benar dilakukan oleh perintah rm, dan kemudian Anda membuat kesalahan ketika itu tidak disebutkan. Biasakan menggunakan perintah trash dan itu tidak bisa terjadi.
5
@Roger: Atau ... Anda dapat alias rmdan kemudian menghipnotis diri Anda untuk lupa bahwa Anda melakukannya. Dengan begitu Anda masih bisa tetap menggunakan rmseolah-olah itu sudah final .... tetapi jika Anda tergelincir dan pergi "oh noes !!" Anda tidak sepenuhnya kacau. (yaitu jangan mengandalkan fungsionalitas "recoverable")
mpen
@RyanThompson: Ini tip yang bagus, tetapi bagaimana mengonfigurasikannya agar berfungsi juga sudo rm?
takeshin
15

Jawaban tradisionalnya adalah:

Anda memulihkan file dari cadangan terbaru. Anda memiliki cadangan baru-baru ini, bukan?

karena pada banyak filesystem unix, sederhana ini tidak mungkin, atau sangat sulit.

Seperti yang telah dicatat oleh orang lain, ini bukanlah akhir dari segalanya dan menjadi-semua masalah lagi, tetapi tidak membuat kesalahan seperti ini masih merupakan pendekatan yang lebih disukai.

dmckee
sumber
5
Saya benar-benar berniat untuk menempatkan semua skrip saya pada repositori bzr yang berkomitmen setiap jam.
Adam Matan
3
Jawaban modern adalah: Pulihkan file dari snapshot sistem file terbaru. :-)
knweiss
Itu pertanyaan keren ... Saya biasanya tidak membuat cadangan ~ / Unduhan ... dan menghapus konten saya dengan meneruskan rm -fr *(1)*... setiap file pergi. Jadi memiliki cadangan tidak selalu merupakan solusi. Sampah-cli terdengar keren.
m3nda
Tidak, memiliki cadangan SELALU solusinya. Hanya karena Anda memilih untuk tidak mencadangkan sesuatu, tidak membuat cadangan bukan solusi, itu membuat Anda konyol, karena tidak mencadangkan sesuatu.
djsmiley2k - KK
4

Untuk mencegah kesalahan di masa mendatang, Anda mungkin ingin alias rm ke rm ...

Bradshaw yang kaya
sumber
6
Saya umumnya berpikir bahwa ini tidak akan pernah mencegah kesalahan ('y' diketik secara otomatis), tetapi mengkonsumsi banyak waktu, dan mendorong penggunaan He-Whose-Name-Must-Not-Be-Disebut-sebut rm -rf.
Adam Matan
Itu memang memberi Anda satu upaya tambahan sebelum mengacaukan segalanya. Saya biasanya hanya lsdengan parameter yang sama sebelumnya sehingga saya bisa melihat apa yang akan terjadi.
Rich Bradshaw
Saya biasanya menghapus file dengan sengaja, saya baru sadar bahwa saya membutuhkan file-file itu nanti. Jadi interaktif tidak akan membantu
andrewtweber