Memulihkan file yang dihapus di Mac dengan baris perintah

24

Saya tidak sengaja menghapus file dengan menjalankan:

rm -rf ./Desktop/myScript.sh

Saya pikir mungkin untuk memulihkan file, karena rmperintah menghapus sementara. Bagaimana saya bisa memulihkan file yang dihapus di Mac OSX?

cat_minhv0
sumber
1
Anda akan ingin mencari alat HFS + undelete, dengan asumsi Anda menggunakan HFS +. Situs Apple SE mungkin tahu lebih banyak.
derobert
1
Anekdotal, tetapi ayah mertua saya secara tidak sengaja menghapus direktori besar foto di Mac OS X, dan berhasil memulihkan sebagian besar dari mereka menggunakan alat yang diunduh (saya pikir itu memerlukan biaya, tetapi harus melakukan uji coba untuk satu atau dua file , jadi Anda dapat menguji apakah itu akan berhasil, dan dalam kasus Anda itu sudah cukup). discussion.apple.com/thread/…
ire_and_curses

Jawaban:

28

MacOS adalah OS Unix dan rmberarti "selamat tinggal". Antarmuka GUI memungkinkan Anda untuk memindahkan file ke tempat sampah (yang dapat Anda pulihkan) tetapi bukan itu yang Anda lakukan. Jika Anda memiliki cadangan (mis. Anda menjalankan Time Machine) maka Anda disimpan.

Klarifikasi

Sebenarnya (seperti yang ditunjukkan oleh @ire_and_curses) a rmcukup menghapus entri direktori untuk file sambil meninggalkan blok disk yang digunakan, tidak tersentuh. Jika Anda dapat menghentikan sistem file tempat file tersebut berada, ada metode lanjutan yang dapat Anda coba temukan kembali konten blok tersebut. Ada juga beberapa alat pemulihan yang dapat dibeli untuk memulihkan kerugian. Masalah utama adalah tidak ada lagi yang menggunakan kembali blok disk yang diwakili oleh file Anda.

MacOS juga memiliki perintah hapus aman ( srm) yang menulis terlalu banyak file sebelum unlinkdiedit sehingga tidak dapat dipulihkan. Saya menggunakan unlinkistilah ini karena ini adalah panggilan sistem dasar yang terkait dengan rmperintah shell . Ini mengatur tahapan untuk bagian selanjutnya dari diskusi ini, di bawah ini.

Sidenote

[Saya harus segera menambahkan bahwa bahkan jika Anda menulis disk berkali-kali, ada cara untuk membaca apa yang ditulis selusin kali atau lebih sebelumnya. Untuk membersihkan disk dengan benar untuk pembuangan benar-benar membutuhkan rendaman asam, palu besar, dan mesin penghancur kertas. ]

unlinking file mengurangi jumlah inode tautan-hitungan file. Jika nilai ini mencapai nol, file dihapus dari direktori filesystem dan blok disknya dibebaskan untuk digunakan kembali. Ini hanya terjadi ketika tidak ada proses membuka file. Sering membingungkan para administrator untuk menemukan bahwa sistem file menggunakan ruang yang sangat besar yang tidak dapat dipertanggungjawabkan dengan penjumlahan sederhana blok disk (dengan sesuatu seperti du). Paling sering alasannya adalah bahwa file yang terbuka telah dihapus, sehingga tidak lagi terwakili dalam direktori. Alasannya adalah bahwa blok disk tetap tidak digunakan sampai proses terakhir menggunakan file berakhir.

Membuka file dan segera unlinkmelakukannya sebenarnya adalah praktik umum untuk membuat file sementara yang aman. Alat-alat seperti lsofdapat mengekspos file yang tidak terlihat ini jika Anda mencari file dengan jumlah tautan (NLINK) nol.

Dalam Unix dan Linux (yang MacOS adalah Unix bermerek), sebuah rmmengikuti filosofi Unix "do-it" tanpa gembar-gembor jika itu bisa. Yaitu, jika Anda memiliki izin untuk menghapus file (yaitu direktori Anda memungkinkan penulisan) maka rmlakukan apa yang Anda minta. Anda mungkin ingin membuat alias shell rm='rm -i'yang meminta konfirmasi sebelum melakukan operasi. Menggunakan -fsakelar dengan rmmenimpanya jika perlu. Alias rmadalah yang paling berguna ketika Anda globmenghapus suka rm *.log. Artinya, Anda memiliki opsi untuk melewatkan file dalam daftar.

JRFerguson
sumber
Dilakukan dengan baik pada bagian "klarifikasi".
Tim
Fungsi "secure erase trash" Mac OS menggunakan pola yang diteliti untuk benar-benar menghapus sumur kuantum pada disk pemintalan modern. Pada penyimpanan solid state, ia menggunakan fungsionalitas "trim" untuk menempatkan blok penyimpanan yang terkait dengan file di kepala antrian "yang akan dihapus" di pengontrol penyimpanan. Gunakan mereka jika Anda benar-benar ingin konten dari disk Anda, tetapi perhatikan bahwa mereka membutuhkan waktu lama untuk menggosok disk berputar.
Wexxor
4

Bergantung pada konten Anda, tetapi Anda dapat menggunakan perangkat lunak pihak ketiga yang berbeda untuk melakukan itu, misalnya:

dan masih banyak lagi.

Anda dapat menemukan lebih banyak aplikasi dengan mengetikkan 'pemulihan data' di App Store.


Cara yang lebih maju adalah dengan boot OSX Anda dalam mode pemulihan (atau umount partisi Anda jika Anda bisa) dan mencarinya secara manual (jika Anda mengingat beberapa teks tertentu dari skrip Anda).

Beberapa contoh:

diskutil list
sudo cat /dev/disk0s2 | strings | grep -C20 "my_stuff"
kenorb
sumber
1
Digunakan Wondershare dan mendapatkan beberapa kode kembali I "git clean -f" 'd
fionbio
2
Pada 2019 trik pemindaian blok perangkat tidak mungkin atau lebih sulit dilakukan pada OSX sekarang karena enkripsi APFS. Saya telah berhasil data seperti itu di linux: P
primehunter326