Bagaimana cara merobek folder?

18

Saya ingin perintah untuk sepenuhnya merobek isi folder / direktori (yang mungkin di dalam folder / direktori). Tolong jelaskan juga perintahnya.

Ashu
sumber
Tentukan "rusak". Jika Anda hanya bermaksud apa yang dilakukan shredperintah, maka ada jawaban Anda.
psusi
Sangat terkait: askubuntu.com/questions/57572/…
Takkat
@ psusi- oleh rusak maksudku menghapus file di luar pemulihan. saya menggunakan perintah rusak tetapi karena itu hanya berlaku untuk file saya ingin perintah serupa untuk menghapus folder dan file di dalamnya.
Ashu
Yang mana yang melakukan pekerjaan dengan sempurna shredatau secure-delete?
Ashu
1
Untuk pengguna lain yang tersandung di sini, berhati-hatilah dengan shred ini tidak seefektif yang Anda pikirkan karena sistem file dan perangkat keras modern tidak menimpa data di tempat, melainkan membuat jurnal perubahan, atau memindahkannya untuk meratakan keausan. Terkait: unix.stackexchange.com/questions/27027/…
Mike Ounsworth

Jawaban:

27
  1. Instal paket secure-delete.
  2. Gunakan perintah srm -r pathnameuntuk menghapus folder dan file Anda.

Pengaturan default adalah untuk 38 (!!!) pass overwrites yang sangat berlebihan imho (lihat info lebih lanjut tentang ini di sini ).

Untuk penggunaan saya, saya hanya ingin satu pass data acak jadi saya gunakan srm -rfll pathname.

Jika Anda ingin membuat opsi klik kanan di GUI untuk file dan folder, gunakan tindakan gnome untuk memanggil skrip seperti ini:

#!/bin/bash
if dialog=`zenity --window-icon=warning --question --title="Secure Delete" --no-wrap --text="Are you sure you want to securely delete:\n\n     $1\n\nand any other files and folders selected? File data will be overwritten and cannot be recovered."` 
then /usr/bin/srm -fllrv "$@"| zenity --progress --pulsate --text="File deletion in progress..." --title="Secure Delete" --auto-close
fi 

Jika Anda ingin lebih banyak pengaturan paranoid pastikan untuk memodifikasi skrip di atas.

Veazer
sumber
1
-f fast (and insecure mode): no /dev/urandom, no synchronize mode. -l lessens the security (use twice for total insecure mode). dapatkah Anda menjelaskan dua hal ini? 38 menimpa adalah default bagaimana hal ini mempengaruhi nilai '38'. dan mengapa ldua kali di-rfll
Ashu
2
OK, keseluruhan proses default adalah: 1 pass dengan 0xff (penghapusan nol), 5 pass acak dengan / dev / urandom digunakan untuk RNG yang aman jika tersedia, 27 pass dengan nilai khusus yang ditentukan oleh Peter Gutmann, 5 pass acak dari / dev / acak. Kemudian ganti nama file menjadi nilai acak & potong file. IIRC, / dev / random dianggap sebagai sistem generasi nomor acak yang lebih baik. Menggunakan -fll kita melewatkan 1 + 5 + 27 + 5 laluan dan menggantikannya dengan laluan tunggal data acak, mungkin dari generator yang kurang "benar-benar acak".
Veazer
@Ashu disingkat dari halaman manual (Debian Jessie) untuk srm; (frist) -l: only two passes, (second) -l: only one pass. Untuk orang lain, -f: fast (Non-secure random bits)dan -r: recursive. Saya juga sangat menyarankan -v: verbose. Saya juga menyarankan menjalankan ini dalam sebuah screencontoh, itu bisa memakan waktu cukup lama pada banyak data.
ThorSummoner
1
Saya telah mengganti /usr/bin/srm -fllrvdenganbleachbit -s
8

Untuk file yang bukan direktori, inilah cara yang lebih sederhana daripada -exec shred -u {} \;jenis cara:

cd to your directory.

kemudian

find . -type f -print0 | xargs -0 shred -fuzv -n 48

ini tidak melewati 48 secara rekursif ke direktori saat ini yang Anda cdkunjungi.

Semoga ini bisa membantu.

memorysticky
sumber
Menambahkan '-print0' untuk menemukan dan '-0' ke xargs? Direktori mungkin memiliki spasi putih dalam namanya.
lemah
Jawaban bagus tapi Kenapa kamu menggunakan xargs ?? Saya tidak mengerti xargs.
Chinmaya B
1

Rusak hanya berfungsi pada file. Anda harus merobek file dalam dir / subdirs terlebih dahulu dan kemudian menghapus direktori. mencoba

find [PATH_TO_DIR] 

dan pastikan Anda hanya melihat file yang ingin Anda hapus

find [PATH_TO_DIR] -exec shred -u {} \;

kemudian hapus dir dengan

rm -rf [PATH_TO_DIR]
Ruediger
sumber
tolong jelaskan {} \;. juga di suatu tempat elsi saya telah melihat perintah yang sama seperti Anda tetapi '{}' \;apa bedanya keduanya?
Ashu
Karena shred tidak berfungsi pada direktori, bagaimana dengan menambahkan opsi -type f ke perintah find?
andol
@ andol: ya saya memikirkan itu ..
Ashu
1
Tidak dapat menjelaskannya lebih baik daripada halaman manual find .... the {} dan \; adalah bagian dari opsi -exec dari find.
Ruediger
1

Anda mungkin ingin menggunakan sesuatu yang mirip dengan ini:

find dir -type f -exec shred -fuz {} +
rm -rf dir

Perintah pertama hanya menemukan file dan meneruskannya ke rusak (sebanyak mungkin sekaligus - tidak perlu memulai proses rusak baru untuk setiap file seperti \; tidak). Akhirnya, hapus direktori juga.

pengguna1338062
sumber
1

sudo apt install wipe

$ wipe -rfi dir/*

tempat bendera digunakan: -r – tells wipe to recurse into subdirectories -f – enables forced deletion and disable confirmation query -i – shows progress of deletion process

cryptoboy
sumber
0

Saya telah memasukkan skrip bash berikut untuk tujuan ini di .bashrc saya

function rm2 {

  for var in $@
  do
  if [ -d $var ]
  then
     nohup $( /usr/bin/find "$var" -type f -exec  shred -n 2 -u -z -x {} \;;/bin/rm -rf "$var" ) & 
  else
    nohup /usr/bin/shred -x -n 2 -u -z "$var" & 
  fi
done
exit
}
Peter Hornyak
sumber
-1

Ketika saya perlu merobek beberapa file atau seluruh direktori saya hanya menggunakan shred -vzn 20 ./shredme/*.*misalnya, yang menimpa semua file dengan ekstensi file apa pun di folder "shredme". Kemudian Anda dapat menggunakan perintah rm -rf ./shredme standar untuk menghapus folder itu sendiri (atau cukup klik kanan dan hapus folder) karena semua data telah ditimpa 20 kali untuk contoh ini.

Saya melakukan contoh cepat ini dengan banyak gambar duplikat sebagai contoh.

Tangkapan layar terminal

Linuxer
sumber