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 find
comme 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 find
semble se terminer, 0
qu'il trouve ou non le fichier. Je suppose que je pourrais le passer à travers un autre test qui teste pour voir si find
produit une sortie (brute mais efficace serait de remplacer la > /dev/null
avec |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, ssh
les ai édités sur la machine principale, et j'étais alors à court de trouver le meilleur moyen de trouver les fichiers manquants.
locate
pas 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
.