Как уничтожить папку?

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

18
задан 23 August 2012 в 18:28

7 ответов

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

cd to your directory.

затем

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

это делает 48 рекурсивно передается в текущий каталог Вы cd въехали в.

Надеюсь, это поможет некоторым.

0
ответ дан 23 August 2012 в 18:28

Шред работает только с файлами. Вам нужно сначала уничтожить файлы в каталоге dir / subdirs, а затем удалить каталоги. попробуйте

find [PATH_TO_DIR] 

и убедитесь, что вы видите только те файлы, которые хотите удалить

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

, затем удалите папки с помощью

rm -rf [PATH_TO_DIR]
0
ответ дан 23 August 2012 в 18:28

Возможно, вы захотите использовать что-то похожее на это:

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

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

0
ответ дан 23 August 2012 в 18:28

Я вставил следующий скрипт 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
}
0
ответ дан 23 August 2012 в 18:28

Когда мне нужно уничтожить несколько файлов или весь каталог, я просто использую, например, shred -vzn 20 ./shredme/*.*, который перезаписывает все файлы с любым расширением в папке «shredme». Затем вы можете использовать стандартную команду rm -rf ./shredme, чтобы удалить саму папку (или просто щелкните правой кнопкой мыши и удалите папку), так как все данные были перезаписаны 20 раз для этого примера.

Я сделал быстрый пример этого с кучей дублирующих изображений в качестве примера.

Terminal screenshot

0
ответ дан 23 August 2012 в 18:28

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
ответ дан 23 August 2012 в 18:28
  1. Установите пакет secure-delete.
  2. Используйте команду srm -r pathname, чтобы удалить папку и файлы.

Настройки по умолчанию для 38 (!!!) проходов перезаписей, что является крайним излишним imho (подробнее об этом здесь ).

Для моего использования я хочу только один проход случайных данных, поэтому я использую srm -rfll pathname.

Если вы хотите создать опцию щелчка правой кнопкой мыши в графическом интерфейсе для файлов и папок, используйте gnome-actions для вызова сценария, подобного этому:

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

Если вы хотите больше настроек параноика, обязательно измените приведенный выше скрипт.

0
ответ дан 23 August 2012 в 18:28

Другие вопросы по тегам:

Похожие вопросы: