Bisakah file / direktori dihapus dengan rm dikembalikan?

69

Apakah mungkin untuk mengembalikan file / direktori yang dihapus dari terminal menggunakan rmdan rm -r? Jika file dihapus dari antarmuka grafis, file tersebut dapat dipulihkan dari tempat sampah, tetapi bagaimana Anda mengembalikan file jika dihapus menggunakan utilitas rm ?.

pengguna3215
sumber
untuk alat untuk memulihkan file yang dihapus (dalam bentuk apa pun), Anda dapat melihat pada pertanyaan ini askubuntu.com/q/3883
Lira
Jangan gunakan "rm" jika Anda ingin mengembalikan file di masa mendatang. Anda dapat menggunakan utilitas "rm-trash": github.com/nateshmbhat/rm-trash
Natesh bhat

Jawaban:

63

Untuk tujuan ini saya menggunakan trash-clipaket dan alias berikut di blog saya~/.bashrc

alias rm=trash

Dan trash-clipaket dapat diinstal dengan perintah followoing: sudo apt-get install trash-cli.

File yang Anda hapus akan dipindahkan ke tempat sampah, dan Anda dapat melihatnya di tempat sampah nautilus.

Anda selalu dapat mengakses yang asli rmdengan menggunakan salah satu metode berikut:

command rm something
'rm' something
\rm something

Ada juga perintah untuk mengakses tempat sampah dari terminal, trash-list, restore-trash(atau trash-restore), trash-emptydiinstal dari paket sampah-cli (kemudian melihat halaman manual mereka).

Catatan terakhir, tidak disarankan untuk menggunakan alias seperti itu untuk pengguna super, karena dapat mengganggu operasi sistem.

enzotib
sumber
19
Ini adalah solusi, tetapi tidak benar-benar menjawab pertanyaan.
evgeny
Saya pikir pengguna juga akan tahu jika ada beberapa metode untuk mencapai perilaku yang sama dari baris perintah. Jika tidak, saya siap menghapus jawaban saya.
enzotib
3
Ini baik. Saya telah memperoleh beberapa pengetahuan.
user3215
27

Menghapusnya dari terminal akan menghapusnya secara permanen - pemulihan sangat sulit dan terkadang tidak mungkin.

Jika jenis partisi Anda adalah ext3(periksa dengan menggunakan System->Administration->Disk Utility), maka lihat ext3undel .

Jika tidak (jika Anda menginstal Ubuntu dengan pengaturan default ), coba extundeleteprogramnya.

Tidak ada jaminan Anda akan memulihkan apa pun.

Evgeny
sumber
Ini akan sangat berguna untuk edisi desktop.
user3215
Saya ragu ini bekerja secara efektif untuk drive SSD, tetapi senang mendengar sebaliknya
matt
13

Anda mencari: extundelete - utilitas untuk memulihkan file yang dihapus dari partisi ext3 / ext4

Untuk menemukan paket seperti itu, Anda dapat mencoba: apt-cache search undelete

Untuk menggunakan utilitas instal dengan: sudo apt-get install extundelete

Setelah instalasi mohon man extundeletedan pelajari dengan seksama.

H.-Dirk Schmitt
sumber
6

Sama seperti alternatif, jika Anda tahu secara spesifik jenis file itu ...

sudo apt-get install foremost

Sekarang buka /etc/foremost.confdan Anda akan melihat daftar panjang garis komentar. Jika jenis file Anda ada, batalkan komentar pada baris (Anda mungkin juga ingin menghapus baris yang tidak relevan).

Jika jenis file Anda tidak ada, tambahkan baris Anda sendiri. Katakanlah saya ingin memulihkan file .css dan saya tahu itu sekitar 40 ribu. Saya bisa menambahkan ini:

css     n       40000   Theme\sName:     Plugin\sFixes

Kolom ke-2 mengacu pada sensitivitas huruf besar-kecil, kolom ketiga mengacu pada batas atas ukuran, kolom ke-4 adalah cara file dimulai (ingat untuk menggunakan karakter yang diloloskan), dan kolom terakhir adalah bagaimana file biasanya berakhir.

Gunakan perintah berikut (edit disk sesuai. Bisa periksa dengan dfperintah)

foremost -v -T -c /etc/foremost.conf -i /dev/sda -o output

Apa yang akan terjadi selanjutnya adalah bahwa yang terpenting akan membuat folder bernama output dan membuang semua data yang dipulihkan (dalam hal ini) ke dalam folder. Dari sana Anda dapat menggunakan diffatau meldmembandingkan 'file' yang dipulihkan dan melihat mana yang paling mutakhir.

Reuben L.
sumber
Terima kasih banyak. Itu bekerja dengan sempurna. Saya tidak sengaja menghapus phpfile sumber saya menggunakan rm -fr php/2 phpfile. Kurang dari 2 menit mereka pulih dengan sempurna. Dalam .conffile saya menambahkan:php n 40000 <?php ?> ASCII
Shakiba Moshiri
5

Berbicara dalam istilah yang paling abstrak, setiap kali Anda menghapus file pada antarmuka grafis, file tersebut "dipindahkan" ke "buffer" khusus, sebuah direktori bernama trash. Anda dapat menemukannya di homedirektori Anda ~/.local/share/Trash/,. File "dihapus" dari direktori ini, akan benar-benar dihapus. Penghapusan nyata ini adalah apa yang terjadi ketika Anda menggunakan rmfile.

Sangat sulit untuk memulihkan file yang dihapus. File dalam sistem file direpresentasikan sebagai node pada pohon-B atau sejenisnya. Ketika file dihapus menggunakan rm, pohon diperbarui, jumlah hardlink berkurang, entri yang sesuai dalam daftar direktori dihapus. Jika sama sekali, file Anda memiliki tautan keras, file Anda benar-benar aman. Anda bisa melakukan file / -samefile filename. Anda dapat mencari file jika Anda ingat nomor inode juga (ini tidak terjadi).

Kasus lain adalah ketika tidak ada dari kemungkinan di atas yang benar. Setiap kali Anda rmmenyimpan file, entri file pada direktori dihapus, mengurangi jumlah hardlink dengan satu. Dan jika jumlah tautan keras turun ke nol, maka penunjuk ke file pada inode dijatuhkan, atau ditandai untuk dihapus. Either way, file Anda "masih" berada di hard disk. File ini sebenarnya dihapus dari hard disk hanya pada remount berikutnya. Pemulihan file pada saat seperti itu sangat sulit, melibatkan melalui pohon sistem file dan inode yang mewakili lokasi blok disk sebenarnya. Ada alat populer yang pernah saya dengar, tetapi tidak pernah menggunakannya, disebut extundelete. Meskipun tidak ada jaminan, ada baiknya mencoba.

Setelah Anda berhasil memulihkan file Anda, segera lakukan backup rutin. Ini sangat sederhana di Ubuntu.

John Strood
sumber
2

Maaf, tetapi file dihapus dari baris perintah dengan "rm" dan "rm -f" memotong "Trashcan" yang Anda miliki di desktop Gnome.

Anda mungkin juga ingin bertanya apakah ada alat "undelete" ekstensi seperti untuk FAT dan NTFS. (Aku tidak tahu apa-apa, tapi aku akan terkejut jika tidak ada.)

Stéphane
sumber
Oh ... tidak apa-apa! Saya pikir itu bisa dipulihkan dari beberapa lokasi.
user3215
1

gunakan utilitas " rm-trash " yang menangani menempatkan mereka ke trash untuk pengambilan nanti dan mendukung semua opsi perintah "rm".

sudo add-apt-repository ppa:nateshmbhat/rm-trash
sudo apt-get update
sudo apt-get install rm-trash

"rm-trash" adalah

  • dimaksudkan untuk digunakan sebagai pengganti rm
  • menangani semua opsi yang dapat diambil rm
  • menangani tabrakan nama file dengan file yang sudah ada di tempat sampah
  • menangani beberapa masalah izin secara otomatis
  • jika rm dipanggil dari skrip lain atau secara tidak langsung maka perintah sistem 'rm' digunakan secara otomatis
  • menampilkan pesan kesalahan yang sesuai seperti yang muncul di rm
Natesh bhat
sumber