est-ce que dd peut être utilisé pour nettoyer un répertoire?

2

J'ai un répertoire sur une installation de menthe que je veux effacer propre (pas simplement supprimer les pointeurs, en fait zéro les informations du lecteur). est-il possible d'effacer les données en utilisant dd? Par exemple, si les fichiers que je veux effacer sont à /folder/folder1/*, puis-je exécuter dd if=/dev/zero of=/folder/folder1 bs=1k et avoir ce zéro tous les fichiers dans ce répertoire? De plus, si j’ai des sous-répertoires, cela fonctionnera-t-il de manière récursive pour mettre à zéro tous les sous-dossiers?

ewok
la source

Réponses:

2

Vous pouvez utiliser find et dd ensemble pour écrire de manière récursive sur des fichiers, l'un après l'autre:

find /folder/folder1 -type f | while read line; do dd if=/dev/zero of=$line bs=1k count=1024; done

Ensuite, vous pouvez simplement rm -rf le répertoire parent:

rm -rf /folder/folder1

Ce ne sera en aucun cas un processus rapide, mais le travail sera fait. Il existe certainement de meilleurs outils que d’utiliser dd pour cela.

MaQleod
la source
3

Vous ne pouvez pas utiliser dd pour le dossier, qui est pour les périphériques tels qu'une partition ou un fichier. Si c'est Ubuntu, vous devriez installer shred, qui est conçu pour ce que vous voulez faire.

Shred ne fonctionne que sur les fichiers, vous voulez donc:

find /folder -type f -print0 | xargs -0 shred

Vous pouvez utiliser shred sur les partitions aussi.

Il existe de nombreux autres outils si vous n'êtes pas sur Ubuntu. shred peut être disponible pour d'autres distributions aussi.

Vous pouvez également utiliser Google pour supprimer des fichiers en toute sécurité sous Linux, ou quelque chose du genre, afin de trouver plus d'outils qui pourraient mieux répondre à vos besoins.

johnshen64
la source
menthe a différentes bases de code, certaines basées sur ubuntu / debian, c’est pourquoi je ne sais pas trop quels paquets sont disponibles pour le vôtre. Je suis sûr que Shred est disponible pour la Monnaie en cours.
johnshen64
Merci! Il est à noter que shred ne fonctionne que sur des fichiers, pas sur des dossiers. J'ai résolu ceci en exécutant find /folder/folder1 -type f | xargs shred
ewok
ah ok, merci pour les commentaires!
johnshen64
Pour être en sécurité, vous voulez utiliser print0 comme un find option et passe -0 à 'xargs` @ewok
slhck
Sur CentOS / Fedora, vous devez installer coreutils
ksokol
1

j'utilise srm, qui est dans le secure-delete paquet sur Ubuntu et Debian. sudo apt-get install secure-delete pour l'installer, puis srm -r $directory supprimer en toute sécurité une arborescence de répertoires complète. srm n'écrasera pas les fichiers non normaux, mais par défaut, il renommera tous les fichiers et répertoires en une valeur aléatoire avant de les dissocier.

Vous pouvez utiliser le -z drapeau pour l'avoir écrire des zéros pour la dernière passe et -v pour voir ses progrès. Voir man srm pour plus d'informations.

Blacklight Shining
la source
0

Non, vous ne pouvez pas utiliser dd pour supprimer un répertoire en toute sécurité, mais vous pouvez utiliser wipe.

wipe écrase à plusieurs reprises des modèles spéciaux dans les fichiers à détruire, à l'aide de l'appel fsync () et / ou du bit O_SYNC pour forcer l'accès au disque.

Joleng
la source
2
... pouvez-vous élaborer un peu?
ewok