Eu tenho uma lista de arquivos que quero verificar se eles existem no meu sistema de arquivos. Eu pensei em fazer isso usando findcomo em:
for f in $(cat file_list); do
find . -name $f > /dev/null || print $f
done
(usando zsh), mas isso não funciona, pois findparece sair 0se ele encontra ou não o arquivo. Eu acho que eu poderia passar por algum outro teste que testa para ver se findproduz alguma saída (bruto, mas eficaz seria substituí-lo > /dev/nullpor |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 finda 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, ssheditei-os na máquina principal e fiquei sem saber por que descobrir a melhor maneira de encontrar os arquivos ausentes.
locatenã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.