pode ser usado para limpar um diretório?

2

Eu tenho um diretório em uma instalação Mint que eu quero limpar (não basta apagar os ponteiros, na verdade, zerar as informações da unidade). é possível limpar os dados usando dd ? Por exemplo, se os arquivos que eu quero apagar estiverem em /folder/folder1/* , posso executar dd if=/dev/zero of=/folder/folder1 bs=1k e zerar todos os arquivos nesse diretório? Além disso, se eu tiver subdiretórios, ele funcionará recursivamente para zerar todas as subpastas também?

    
por ewok 10.05.2012 / 16:15

4 respostas

2

Você pode usar o comando find e dd juntos para escrever recursivamente os arquivos, um de cada vez:

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

Então você pode apenas rm -rf o diretório pai:

rm -rf /folder/folder1

Isso não será um processo rápido, mas fará o trabalho. Certamente há ferramentas melhores do que usar o dd para isso.

    
por 10.05.2012 / 17:15
3

Você não pode usar dd para pasta, que é para dispositivos como uma partição ou um arquivo. Se for o Ubuntu, você deve instalar o shred , que é projetado para o que você deseja fazer.

O Shred funciona apenas em arquivos, por isso você quer fazer:

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

Você também pode usar shred em partições.

Existem muitas outras ferramentas, se você não estiver no Ubuntu. shred pode estar disponível para outras distros também.

Você também pode pesquisar no Google por excluir arquivos com segurança no Linux, ou algo do tipo, para encontrar mais ferramentas que possam atender melhor às suas necessidades.

    
por 10.05.2012 / 16:59
1

Eu uso srm , que está no pacote secure-delete no Ubuntu e Debian. sudo apt-get install secure-delete para instalá-lo e, em seguida, srm -r $directory para remover com segurança uma árvore de diretórios inteira. srm não sobrescreverá arquivos não regulares, mas irá (por padrão) renomear todos os arquivos e diretórios para um valor aleatório antes de desvinculá-los.

Você pode usar o sinal -z para que ele escreva zeros para a última passagem e -v para ver seu progresso. Veja man srm para mais informações.

    
por 04.10.2012 / 07:04
0

Não, você não pode usar o dd para excluir com segurança um diretório, mas pode usar wipe .

wipe repeatedly overwrites special patterns to the files to be destroyed, using the fsync() call and/or the O_SYNC bit to force disk access

    
por 10.05.2012 / 16:23