Як подрібнити папку?


18

Я хочу, щоб команда повністю роздробила вміст папки / каталогу (який може бути всередині папок / каталогів). Також, будь ласка, поясніть команду.


Визначте "клаптик". Якщо ви просто маєте на увазі, що shredробить команда, то є ваша відповідь.
psusi


@ psusi- подрібнюю, я маю на увазі видалити файл після відновлення. я використовував команду shred, але оскільки це стосувалося лише файлів, я хотів, щоб аналогічна команда видаляла папки та файли в ній.
Ашу

Хто з них виконує цю роботу ідеально shredчи secure-delete?
Ашу

1
Для інших користувачів, які тут натрапляють, остерігайтеся, що shred це не так ефективно, як ви думаєте, тому що сучасні файлові системи та обладнання не перезаписують дані на місці, а замість цього проводять журнал змін або переміщують їх для вирівнювання зносу. Пов’язано: unix.stackexchange.com/questions/27027/…
Майк Оунсворт

Відповіді:


27
  1. Встановіть пакет secure-delete.
  2. За допомогою команди srm -r pathnameвиберіть папку та файли.

За замовчуванням встановлено 38 (!!!) пропусків перезаписів, що є надзвичайно надмірним imho (докладнішу інформацію про це можна знайти тут ).

Для мого використання я хочу лише один пропуск випадкових даних, щоб я використовував srm -rfll pathname.

Якщо ви хочете створити опцію правого клацання в графічному інтерфейсі для файлів і папок, використовуйте дії gnome для виклику такого сценарію:

#!/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 

Якщо ви хочете отримати більше параметрів параноїків, не забудьте змінити вищевказаний сценарій.


1
-f fast (and insecure mode): no /dev/urandom, no synchronize mode. -l lessens the security (use twice for total insecure mode). Ви можете пояснити, будь ласка, ці дві речі. 38 перезаписів за замовчуванням, як це впливає на значення "38". і чому lдва рази в-rfll
Ашу

2
Гаразд, весь процес за замовчуванням: 1 пропуск з 0xff (нульове витирання), 5 випадкових пропусків з / dev / urandom використовується для безпечної RNG, якщо вона доступна, 27 проходів із спеціальними значеннями, визначеними Пітером Гутманом, ще 5 випадкових пропусків від / dev / випадково. Потім перейменуйте файл у випадкове значення та обріжте файл. IIRC, / dev / random вважається кращою системою генерації випадкових чисел. За допомогою -fll ми пропускаємо 1 + 5 + 27 + 5 проходів і підміняємо одним пропуском випадкових даних, можливо, з менш "по-справжньому генератора".
Везер

@Ashu скорочено зі сторінки man (Debian Jessie) для srm; (frist) -l: only two passes, (second) -l: only one pass. Для інших -f: fast (Non-secure random bits)і -r: recursive. Я також дуже пропоную -v: verbose. Я б також запропонував запустити це в screenекземплярі, це може зайняти досить багато часу для багатьох даних.
ThorSummoner

1
Я замінив /usr/bin/srm -fllrvзbleachbit -s

8

Для файлів, а не для каталогів, ось більш простий спосіб замість -exec shred -u {} \;типу способу:

cd to your directory.

потім

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

це робить 48 рекурсивно передається до поточного каталогу, в який ви cdвходили.

Сподіваюся, що це допомагає деяким.


Додавання '-print0' для пошуку та '-0' до xargs? Каталоги можуть мати пробіли у своїх назвах.
слабкий

Хороша відповідь, але для чого ви використовуєте xargs ?? Я не розумію xargs.
Chinmaya B

1

Shred працює лише у файлах. Спершу потрібно подрібнити файли в dir / subdiri, а потім видалити каталоги. спробуйте

find [PATH_TO_DIR] 

і переконайтеся, що ви бачите лише ті файли, які потрібно видалити

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

потім вийміть бруси за допомогою

rm -rf [PATH_TO_DIR]

Ви можете, будь ласка, поясніть {} \;. також десь Елсі я бачив ту ж команду, що і ваша, але це була '{}' \;різниця між двома ??
Ашу

Оскільки shred не працює в каталогах, як щодо додавання параметра-type f до команд find?
andol

@ andol: так, я думав про це ..
Ашу

1
Неможливо пояснити це краще, ніж сторінку пошуку man .... {{and \; є частиною опції -exec знахідки.
Рудігер

1

Напевно, ви хочете використовувати щось подібне до цього:

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

Перша команда знаходить лише файли та передає їх у подрібнення (якомога більше одразу - не потрібно запускати новий процес шрифту для кожного файлу, наприклад \; так). Нарешті, видаліть також каталоги.


1

sudo apt install wipe

$ wipe -rfi dir/*

де використовуються прапори: -r – tells wipe to recurse into subdirectories -f – enables forced deletion and disable confirmation query -i – shows progress of deletion process


0

Для цього я вставив наступний скрипт bash у свій .bashrc

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
}

-1

Коли мені потрібно подрібнити кілька файлів або весь каталог, я просто використовую shred -vzn 20 ./shredme/*.* наприклад, який перезаписує всі файли з будь-яким розширенням файлу в папці "shredme". Тоді ви можете використовувати стандартну команду rm -rf ./shredme для видалення самої папки (або просто натисніть правою кнопкою миші та видаліть папку), оскільки всі дані були перезаписані 20 разів для цього прикладу.

Я зробив короткий приклад цього з купою повторюваних зображень як приклад.

Скріншот терміналу

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.