Eu tenho uma lista de arquivos que quero verificar se eles existem no meu sistema de arquivos. Eu pensei em fazer isso usando find
como em:
for f in $(cat file_list); do
find . -name $f > /dev/null || print $f
done
(usando zsh
), mas isso não funciona, pois find
parece sair 0
se ele encontra ou não o arquivo. Eu acho que eu poderia passar por algum outro teste que testa para ver se find
produz alguma saída (bruto, mas eficaz seria substituí-lo > /dev/null
por |grep ''
), mas isso parece usar um troll para pegar uma cabra (outras nacionalidades podem dizer algo sobre marretas e nozes )
Existe uma maneira de coagir find
a me dar um valor de saída útil? Ou pelo menos para obter uma lista daqueles arquivos que não foram encontrados? (Eu posso imaginar o último sendo talvez mais fácil por alguma escolha astuta de conectivos lógicos, mas pareço sempre ficar atolado quando tento descobrir isso.)
Antecedentes / Motivação: Eu tenho um backup "principal" e quero verificar se existem alguns arquivos na minha máquina local no meu backup principal antes de excluí-los (para criar um pouco de espaço). Então, fiz uma lista dos arquivos, ssh
editei-os na máquina principal e fiquei sem saber por que descobrir a melhor maneira de encontrar os arquivos ausentes.
locate
não está mostrando o estado atual do sistema de arquivos, pode ser um dia ou até uma semana. Isso é adequado como base para testar backups.
locate
.