Exclui todos os arquivos que não possuem string de destino?

0

Os arquivos recuperados são armazenados em / myPhotorec.

O objetivo é recursivamente percorrer cada arquivo e se ele NÃO tiver a cadeia "44c9ea3abbd24" no conteúdo do arquivo (não o nome do arquivo) e, em seguida, exclua-o. O alvo era um arquivo python .py e é renomeado aleatoriamente pelo nome de recuperação do arquivo.

Se isso não pode ser feito, então talvez o arquivo que contém pode ser copiado para um diretório / filtrado?

    
por gatorback 05.05.2018 / 06:20

2 respostas

1

find /myPhotorec -type f ! -exec grep -qF '44c9ea3abbd24' {} ';' -print -delete

Isto encontraria todos os arquivos regulares dentro ou sob o diretório /myPhotorec , testaria se eles continham a string dada (no conteúdo do arquivo), e para cada arquivo que não continha a string, exibia os nomes de caminho e excluiria eles.

Se o seu find não suportar -delete , substitua essa parte por -exec rm {} + .

Se você quiser confirmar manualmente cada exclusão, altere -delete para -ok rm {} ';' .

Em relação a find ... -exec ... : Entendendo a opção -exec de 'find'

    
por 05.05.2018 / 07:49
-1

Suponho que sim:

rm -rf 'find /myPhotorec -name "*" | grep  -v "44c9ea3abbd24"'
    
por 05.05.2018 / 07:30

Tags