Como excluir, sem rm / unlink

3

Relacionado a outra pergunta, perguntei aqui [https://unix.stackexchange.com / questions / 253932 / renomear pasta com caracteres estranhos]

Gostaria de saber se é possível ignorar os binários normais rm / rmdir / unlink e excluir um arquivo usando outro método. Talvez diga por descobrir exatamente onde no disco reside um arquivo ou pasta, e escrevendo dados diferentes para esse local, apagando a pasta ou arquivo. Como alguém faria isso, e causaria problemas para o sistema operacional ou sistema de arquivos?

Ou existe um ... hesito em chamá-lo de arquivo, mas uma área do disco que pode ser visualizada e editada com um editor hexadecimal, digamos, para localizar e desvincular a referência exata para essa pasta / arquivo? E então, existe uma maneira diferente de fazer isso específico para o HFS + e / ou OS X?

EDIT1: Estou interessado em não excluir o conteúdo de um arquivo aqui, estou interessado em remover um arquivo e / ou pasta usando métodos fora de rm / unlink . Eu não estou tentando se livrar de dados em um sentido forense, estou tentando remover uma pasta que se recusa a ser removida (ver pergunta eu ligado ao acima).

    
por Harv 09.01.2016 / 18:33

2 respostas

2

Editar uma imagem de disco é possível, mas muito arriscado. Se você tiver um editor adequado que possa ajudá-lo com isso, valeria a pena ter certeza de que você tem uma cópia (escrita ou não) dos dados que você está alterando.

Mais importante, não deve ser tentado sem que o disco seja desmontado e não esteja em uso. Se é o seu disco de inicialização / sistema, significa que você terá que usar um mecanismo separado para inicializar, como um disco de recuperação.

Meu Rescue CD preferido baseado em Linux é SystemRescueCD , mas não é certo que ele contenha ferramentas HFS (o lista de pacotes sugere que pode). Aqui está outra solução possível , usando um disco de instalação padrão do Ubuntu, mas é de 2009, então ele pode estar extremamente desatualizado .

    
por 09.01.2016 / 19:33
0

Se você não se importa com os dados originais que continuam existindo, e você só deseja excluir os arquivos que você não pode excluir diretamente devido a problemas de codificação de caracteres, então esta é a sua solução. Envolve o uso de renomear para renomear os arquivos para que eles possam ser excluídos. O exemplo abaixo removerá todos os caracteres NÃO-ASCII de todos os nomes de arquivos e diretórios no diretório atual.

rename 's/[^\x00-\x7F]//g' ./*
rm new-filenames

A expressão regular [^\x00-\x7F] veio desta Pergunta de estouro de pilha

Para percorrer em subdiretórios use find:

find . -exec rename -n 's/[^\x00-\x7F]//g' "{}" \;

remova o sinalizador -n para que ele renomeie, em vez de apenas informar quais arquivos ele teria renomeado.

    
por 10.01.2016 / 00:44