J'ai une liste de fichiers que je veux vérifier s'ils existent sur mon système de fichiers. J'ai pensé à faire cela en utilisant findcomme dans:
for f in $(cat file_list); do
find . -name $f > /dev/null || print $f
done
(en utilisant zsh) mais cela ne fonctionne pas, car il findsemble se terminer, 0qu'il trouve ou non le fichier. Je suppose que je pourrais le passer à travers un autre test qui teste pour voir si findproduit une sortie (brute mais efficace serait de remplacer la > /dev/nullavec |grep '') mais cela ressemble à l'utilisation d'un troll pour attraper une chèvre (d'autres nationalités pourraient dire quelque chose à propos des marteaux et des noix ).
Existe-t-il un moyen de contraindre findà me donner une valeur de sortie utile? Ou au moins pour obtenir une liste de ces fichiers qui n'ont pas été trouvés? (Je peux imaginer que ce dernier soit peut-être plus facile grâce à un choix astucieux de connecteurs logiques, mais il semble que je sois toujours lié par des nœuds lorsque j'essaie de le comprendre.)
Contexte / Motivation: J'ai une sauvegarde "maître" et je veux vérifier que certains fichiers sur ma machine locale existent sur ma sauvegarde maître avant de les supprimer (pour créer un peu d'espace). J'ai donc fait une liste des fichiers, sshles ai édités sur la machine principale, et j'étais alors à court de trouver le meilleur moyen de trouver les fichiers manquants.
locatepas l'état actuel du système de fichiers, il peut s'agir d'un jour, voire d'une semaine. Cela convient comme base pour tester les sauvegardes.
locate.