Ho un elenco di file che voglio verificare se esistono sul mio filesystem. Ho pensato di farlo usando find
come in:
for f in $(cat file_list); do
find . -name $f > /dev/null || print $f
done
(usando zsh
) ma non funziona come find
sembra uscire 0
dal trovare o meno il file. Immagino di poterlo superare attraverso qualche altro test che verifica se find
produce qualche risultato (grezzo ma efficace sarebbe sostituire il > /dev/null
con |grep ''
) ma questo sembra come usare un troll per catturare una capra (altre nazionalità potrebbero dire qualcosa su mazze e noci ).
C'è un modo per costringermi find
a darmi un utile valore di uscita? O almeno per ottenere un elenco di quei file che non sono stati trovati? (Posso immaginare che quest'ultimo sia forse più facile da un'astuta scelta di connettivi logici, ma mi sembra di essere sempre legato a nodi quando provo a capirlo.)
Sfondo / motivazione: ho un backup "principale" e voglio verificare che alcuni file sul mio computer locale esistano sul mio backup principale prima di eliminarli (per creare un po 'di spazio). Così ho fatto un elenco dei file, ssh
li ho editati sulla macchina principale, e quindi non sono riuscito a capire il modo migliore per trovare i file mancanti.
locate
non mostra lo stato corrente del filesystem, potrebbe essere di un giorno o addirittura di una settimana. È adatto come base per testare i backup.
locate
.