Pada rm: Ini memutuskan tautan file dari itu inode. Pertanyaan: "Di mana file pergi ketika rmperintah dikeluarkan" -> unix.stackexchange.com/questions/10883/… mungkin juga menjadi bacaan yang baik untuk Anda.
erch
Jawaban:
62
Tidak ada "pembatalan" umum untuk setiap operasi di terminal. Jika Anda ingin memulihkan file setelah menggunakan, rmAnda harus melihat ke dalam perangkat lunak pemulihan.
Pilihan untuk mencegah Anda dari kesalahan di masa depan adalah membuat aliasperintah alternatif untuk menghapus file. Tambahkan mereka ke Anda ~/.bashrcdan biasakan menggunakannya bukan rm.
alias rmi = 'rm -i'
Jika Anda menggunakan rmi, Anda akan diminta untuk konfirmasi penghapusan di masa mendatang. Cobalah untuk menghindari mengembangkan kebiasaan menekan ysegera setelah Anda mengeluarkan rmiperintah, karena itu akan mengalahkan tujuan.
Anda juga dapat memindahkan file yang dihapus oleh trshperintah di terminal ke recycle bin Anda (di KDE dan Gnome):
alias trsh='mv --target-directory="$HOME/.Trash"'
Jika Anda menggunakan trsh, Anda akan memiliki kemampuan "hapus" yang terbatas. Waspadalah itu
trsh dir1/file1 dir2/file1
masih dapat menyebabkan kehilangan data yang tidak dapat dipulihkan.
+1 untuk jawaban yang jauh lebih baik daripada saya =)
The How-To Geek
9
alias kedua sangat, sangat cerdas. +1.
LiraNuna
3
trash () {mv $ @ ~ / .Trash; } # fungsi bash, bukan alias. Mengubah perilaku yang diharapkan dari rm adalah ide yang buruk, IMHO.
Richard Hoskins
20
Risiko dengan aliasing rmto rm -iadalah Anda terbiasa dengan jaring pengaman yang memberi Anda. Kemudian Anda pergi ke komputer lain, yang tidak memiliki alias yang ...
Dentrasi
3
Untuk alasan yang disebutkan oleh Richard dan Dentrasi, saya lebih suka membuat fungsi khusus atau ke alias rmi-> rm -i. Benar-benar sebuah kesalahan untuk menghalangi program yang sudah ada dengan mengabaikannya.
Telemakus
6
Tidak ada tempat sampah daur ulang untuk baris perintah.
Anda dapat mencoba beberapa utilitas yang tidak terhapus, tetapi tidak ada jaminan bahwa mereka akan berhasil.
Ya, ada tempat sampah untuk baris perintah. Lihat trash-cli dalam jawaban lain.
Sparhawk
Trash-cli sangat bagus :) dan menggunakan Trashlib, lebih baik daripada hanya memindahkan file.
m3nda
5
Anda bisa menggunakan trash-cli jika Anda menggunakan KDE saat menjalankan gui. Ini adalah utilitas baris perintah untuk menghapus / mengembalikan menggunakan fasilitas tempat sampah KDE.
trash-cli juga berfungsi dengan GNOME trash dan dirancang untuk memberikan kompatibilitas opsi rm (untuk aliasing).
Andrea Francia
Jangan lupa untuk melakukannya alias rm=trashsehingga perintah-perintah khas pada baris perintah Anda dilengkapi dengan tombol undo.
Ryan C. Thompson
Saya pikir alias rm=trashberpotensi berbahaya, jika ada kemungkinan Anda akan menggunakan sistem orang lain suatu hari dan lupa (atau ssh). Jauh lebih aman untuk terbiasa menulis trashsaja rm.
Sparhawk
4
Anda bisa membuat rmalias untuk trashperintah (Anda harus menginstal trashdulu.) Tambahkan ini ke ~/.bashrc:
alias rm='trash'
Ini lebih disukai alias rm='mv --target-directory=$HOME/.Trash'karena ~ / .Trash BUKAN folder tempat sampah untuk gnome. Lebih baik IMHO untuk trashmencari tahu di mana folder sampah yang sebenarnya.
btw saya akan memposting ini dalam komentar tapi saya tidak punya cukup perwakilan.
+1 untuk "sejak ~ / .Trash BUKAN folder tempat sampah untuk gnome." Namun, rm juga tidak boleh alias dibuang ke tempat sampah. Anda hanya perlu menggunakan sampah daripada rm jika itu yang Anda inginkan.
nagul
Benar, tetapi bagi sebagian orang kebiasaan lama sangat sulit.
Alvin Row
'rmtrash' adalah pilihan lain.
Itachi
3
Dua solusi teknis lainnya belum disebutkan:
libtrash : Pustaka dinamis yang dapat dimuat di dalam shell Anda yang memotong menghapus / menghapus dan memindahkan file ke folder tempat sampah (mirip seperti alias tetapi berfungsi untuk aplikasi apa pun saat dimuat).
Sistem file versi. Jika Anda menghapus (atau mengedit, atau menyalin, atau ...) file, Anda bisa kembali ke kondisi lama. Ini dapat dilakukan dengan sistem file FUSE dan salah satu sistem file versinya .
Ada pertanyaan yang lebih besar di sini yang perlu ditangani. Perintah Shell tidak cerewet (mereka tidak mengecek apa yang Anda inginkan), dan mereka berharap Anda tahu apa yang Anda lakukan. Ini mendasar bagaimana mereka dirancang . Ini fitur, bukan bug.
Beberapa orang merasa macho ketika mereka menggunakan perintah seperti itu, yang saya pikir cukup konyol, tetapi adalah penting untuk memahami bahaya. Anda dapat melakukan banyak kerusakan di terminal, bahkan jika Anda tidak melakukan root. Saya pikir Anda mungkin benar-benar hanya peduli rm, tetapi karena Anda mengatakan "Bisakah kita membatalkan operasi yang dilakukan di terminal", saya pikir ini layak untuk dikatakan. Jawaban umum adalah tidak, Anda tidak bisa.
Opsi 1: Lihat Membatalkan File Linux dari Sistem File ext2 . Halaman ini menunjuk ke sebuah program, yang ditulis oleh Sebastian Hetze dari perusahaan LunetIX, yang (seperti judulnya) membatalkan penghapusan file yang baru-baru ini dihapus dari sistem file ext2. Contoh penggunaan:
# undelete -d /dev/hdc3 -a 10
Peringatan:
Situs web asli hilang. Tautan di atas adalah ke Internet Archive.
Situs ini dalam campuran bahasa Inggris dan Jerman.
Seperti yang dinyatakan di atas, alat ini dirancang khusus untuk sistem file ext2. Sepertinya tidak akan berfungsi pada tipe sistem file lain; terutama bukan yang selain ext N .
Opsi 2: Saya menjalankan rsnapshot (rsync) di mesin saya yang membuat snapshot setiap jam dari folder yang saya pilih. Secara bertahap hal ini dilakukan setiap jam, 2 jam atau apa pun yang Anda minta CRON lakukan. Setelah sehari penuh, foto-foto ini akan didaur ulang menjadi satu snapshot harian dan setelah 7 hari dalam seminggu, dan seterusnya. Ini membuat saya dapat kembali ke masa sekitar satu bulan atau lebih untuk setiap jam! Ini cukup bagus dengan ruang disk karena membuat tautan simbolis ke file yang tidak pernah berubah ...
Ada utilitas yang tidak terhapus untuk ext2, tetapi kebanyakan sistem file Linux lainnya macet di Zaman Batu dan tidak memiliki fitur kegunaan lanjutan. Sedih keadaan mengingat drive raksasa dengan ruang yang cukup untuk tidak pernah menghapus file lagi adalah hal biasa.
Jadi, Anda terjebak dengan tiga opsi:
Lakukan backup secara teratur, misalnya dengan perintah seperti:
Gunakan alat kontrol versi seperti gituntuk semua pekerjaan Anda. Meskipun ini tidak akan melindungi terhadap orang gila rm -ryang membunuh repositori, itu akan melindungi terhadap masalah biasa karena Anda akan menggunakan git rmtidak mentah rm.
Berhati-hatilah dan jangan terlalu percaya rm -i, trash-clidan teman-teman, karena sebagian besar data Anda akan hilang di shell Anda tidak akan hilang secara tidak sengaja rm, tetapi dengan pipa yang salah arah, file output salah ketik, salah arah mvdan hal-hal lain, yaitu hal-hal yang akan ditimpa data Anda, bukan hanya menghapusnya.
Cukup lucu untuk memanggil ext2 modern. Sistem file yang lebih baru menggunakan format on-disk yang lebih rumit daripada ext2 / 3, dan harus menyerahkan lokasi yang mudah ditemukan di mana Anda mungkin menemukan file untuk dihapus. Mereka dirancang untuk orang-orang yang membuat cadangan dari hal-hal yang mereka pedulikan. BTW, saya selalu menggunakan mv dan cp -i, karena saya biasanya tidak ingin mengalahkan apa pun. Saya biasanya mengetik, karena saya juga alias ke rm -i, tetapi saya tidak ingin menjawab pertanyaannya.
adalah setara. skrip menangani lebih banyak kasus dan tidak mengubah sistem Anda rmsama sekali dan itu karena itu dimasukkan ke folder bin lokal pengguna sehingga membayangi sistem rm namun tidak mempengaruhi atau menonaktifkan menggunakannya
ini adalah pendekatan aliasing halus tetapi tanpa kehilangan fitur apa pun
Akan lebih baik jika Anda dapat menambahkan beberapa penjelasan tentang apa yang dilakukan dan bagaimana ini berlaku untuk pertanyaan, mungkin menambahkan contoh, dll.
slhck
0
TestDisk dapat membatalkan penghapusan file dari sistem file FAT, exFAT, NTFS dan ext2 .
Bagi saya (opensuse leap 42.2, NTFS flashdisk) PhotoRec - juga oleh testdiskpencipta - bekerja :) Namun ia belum memulihkan nama file.
PhotoRec adalah perangkat lunak pemulihan data file yang dirancang untuk memulihkan file yang hilang termasuk video, dokumen dan arsip dari hard disk, CD-ROM, dan gambar yang hilang (dengan demikian nama Pemulihan Foto) dari memori kamera digital. PhotoRec mengabaikan sistem file dan mengejar data yang mendasarinya, sehingga akan tetap berfungsi bahkan jika sistem file media Anda telah rusak parah atau diformat ulang.
Saya telah menginstalnya menggunakan repositori standar di openSUSE
Selamat Datang di Pengguna Super! Silakan baca Cara merekomendasikan perangkat lunak untuk informasi minimum yang diperlukan dan saran tentang cara merekomendasikan perangkat lunak pada Pengguna Super. Agar jawaban Anda bermanfaat bahkan jika tautan yang disediakan memecah detail ini harus diedit ke dalam jawaban Anda.
rm
: Ini memutuskan tautan file dari ituinode
. Pertanyaan: "Di mana file pergi ketikarm
perintah dikeluarkan" -> unix.stackexchange.com/questions/10883/… mungkin juga menjadi bacaan yang baik untuk Anda.Jawaban:
Tidak ada "pembatalan" umum untuk setiap operasi di terminal. Jika Anda ingin memulihkan file setelah menggunakan,
rm
Anda harus melihat ke dalam perangkat lunak pemulihan.Pilihan untuk mencegah Anda dari kesalahan di masa depan adalah membuat
alias
perintah alternatif untuk menghapus file. Tambahkan mereka ke Anda~/.bashrc
dan biasakan menggunakannya bukanrm
.Jika Anda menggunakan
rmi
, Anda akan diminta untuk konfirmasi penghapusan di masa mendatang. Cobalah untuk menghindari mengembangkan kebiasaan menekany
segera setelah Anda mengeluarkanrmi
perintah, karena itu akan mengalahkan tujuan.Anda juga dapat memindahkan file yang dihapus oleh
trsh
perintah di terminal ke recycle bin Anda (di KDE dan Gnome):Jika Anda menggunakan
trsh
, Anda akan memiliki kemampuan "hapus" yang terbatas. Waspadalah itumasih dapat menyebabkan kehilangan data yang tidak dapat dipulihkan.
sumber
rm
torm -i
adalah Anda terbiasa dengan jaring pengaman yang memberi Anda. Kemudian Anda pergi ke komputer lain, yang tidak memiliki alias yang ...rmi
->rm -i
. Benar-benar sebuah kesalahan untuk menghalangi program yang sudah ada dengan mengabaikannya.Tidak ada tempat sampah daur ulang untuk baris perintah.
Anda dapat mencoba beberapa utilitas yang tidak terhapus, tetapi tidak ada jaminan bahwa mereka akan berhasil.
sumber
Anda bisa menggunakan trash-cli jika Anda menggunakan KDE saat menjalankan gui. Ini adalah utilitas baris perintah untuk menghapus / mengembalikan menggunakan fasilitas tempat sampah KDE.
sumber
alias rm=trash
sehingga perintah-perintah khas pada baris perintah Anda dilengkapi dengan tombol undo.alias rm=trash
berpotensi berbahaya, jika ada kemungkinan Anda akan menggunakan sistem orang lain suatu hari dan lupa (atau ssh). Jauh lebih aman untuk terbiasa menulistrash
sajarm
.Anda bisa membuat
rm
alias untuktrash
perintah (Anda harus menginstaltrash
dulu.) Tambahkan ini ke~/.bashrc
:Ini lebih disukai
alias rm='mv --target-directory=$HOME/.Trash'
karena ~ / .Trash BUKAN folder tempat sampah untuk gnome. Lebih baik IMHO untuktrash
mencari tahu di mana folder sampah yang sebenarnya.btw saya akan memposting ini dalam komentar tapi saya tidak punya cukup perwakilan.
sumber
Dua solusi teknis lainnya belum disebutkan:
sumber
Ada pertanyaan yang lebih besar di sini yang perlu ditangani. Perintah Shell tidak cerewet (mereka tidak mengecek apa yang Anda inginkan), dan mereka berharap Anda tahu apa yang Anda lakukan. Ini mendasar bagaimana mereka dirancang . Ini fitur, bukan bug.
Beberapa orang merasa macho ketika mereka menggunakan perintah seperti itu, yang saya pikir cukup konyol, tetapi adalah penting untuk memahami bahaya. Anda dapat melakukan banyak kerusakan di terminal, bahkan jika Anda tidak melakukan root. Saya pikir Anda mungkin benar-benar hanya peduli
rm
, tetapi karena Anda mengatakan "Bisakah kita membatalkan operasi yang dilakukan di terminal", saya pikir ini layak untuk dikatakan. Jawaban umum adalah tidak, Anda tidak bisa.sumber
Opsi 1: Lihat Membatalkan File Linux dari Sistem File ext2 . Halaman ini menunjuk ke sebuah program, yang ditulis oleh Sebastian Hetze dari perusahaan LunetIX, yang (seperti judulnya) membatalkan penghapusan file yang baru-baru ini dihapus dari sistem file ext2. Contoh penggunaan:
Peringatan:
Opsi 2: Saya menjalankan rsnapshot (rsync) di mesin saya yang membuat snapshot setiap jam dari folder yang saya pilih. Secara bertahap hal ini dilakukan setiap jam, 2 jam atau apa pun yang Anda minta CRON lakukan. Setelah sehari penuh, foto-foto ini akan didaur ulang menjadi satu snapshot harian dan setelah 7 hari dalam seminggu, dan seterusnya. Ini membuat saya dapat kembali ke masa sekitar satu bulan atau lebih untuk setiap jam! Ini cukup bagus dengan ruang disk karena membuat tautan simbolis ke file yang tidak pernah berubah ...
sumber
Pulihkan menggunakan grep on
/dev/partition
( Linux atau Unix Recover file yang dihapus - hapus file ),Coba saja.
sumber
Ada utilitas yang tidak terhapus untuk ext2, tetapi kebanyakan sistem file Linux lainnya macet di Zaman Batu dan tidak memiliki fitur kegunaan lanjutan. Sedih keadaan mengingat drive raksasa dengan ruang yang cukup untuk tidak pernah menghapus file lagi adalah hal biasa.
Jadi, Anda terjebak dengan tiga opsi:
Lakukan backup secara teratur, misalnya dengan perintah seperti:
rsync -axvRP --backup --backupdir=/backup/incr/$(date -I) /home/ /backup/root/
Gunakan alat kontrol versi seperti
git
untuk semua pekerjaan Anda. Meskipun ini tidak akan melindungi terhadap orang gilarm -r
yang membunuh repositori, itu akan melindungi terhadap masalah biasa karena Anda akan menggunakangit rm
tidak mentahrm
.Berhati-hatilah dan jangan terlalu percaya
rm -i
,trash-cli
dan teman-teman, karena sebagian besar data Anda akan hilang di shell Anda tidak akan hilang secara tidak sengajarm
, tetapi dengan pipa yang salah arah, file output salah ketik, salah arahmv
dan hal-hal lain, yaitu hal-hal yang akan ditimpa data Anda, bukan hanya menghapusnya.Lakukan ketiganya untuk keamanan maksimal.
sumber
periksa ini ... mungkin sangat membantu http://artmees.github.io/rm/
Andaikan Anda melakukannya
dari terminal. Memulihkan file ini adalah proses yang membosankan dan tidak selalu berhasil
alih-alih jika Anda menggunakan skrip yang disebutkan. Anda tidak perlu khawatir karena ini
adalah setara. skrip menangani lebih banyak kasus dan tidak mengubah sistem Anda
rm
sama sekali dan itu karena itu dimasukkan ke folder bin lokal pengguna sehingga membayangi sistem rm namun tidak mempengaruhi atau menonaktifkan menggunakannyaini adalah pendekatan aliasing halus tetapi tanpa kehilangan fitur apa pun
sumber
TestDisk dapat membatalkan penghapusan file dari sistem file FAT, exFAT, NTFS dan ext2 .
sumber
Bagi saya (opensuse leap 42.2, NTFS flashdisk) PhotoRec - juga oleh
testdisk
pencipta - bekerja :) Namun ia belum memulihkan nama file.Saya telah menginstalnya menggunakan repositori standar di openSUSE
petunjuk
sumber