J'ai un grand répertoire "myfiles" plein de documents divers et je ne souhaite pas modifier sa structure.
J'ai donc créé (plusieurs) autres répertoires pour chaque classe de documents. Par exemple, j'ai un répertoire "images" qui a des liens symboliques vers chacun .jpg
ou un .cr2
fichier dans le répertoire "myfiles" ainsi que d'autres fichiers descriptifs pour chaque lien symbolique (avec le même nom de fichier) avec description et autres métadonnées. Les liens symboliques dans le répertoire / images peuvent avoir un nom différent du fichier lié d'origine.
J'essaie de trouver le moyen le plus simple de m'assurer que chaque fichier image du répertoire "myfiles" possède un lien symbolique vers le répertoire "images".
Voir un exemple de la structure des dossiers
/myfiles/a.doc
/myfiles/b.jpg
/myfiles/c.cr2
/myfiles/d.mov
devrait résulter
/images/b_800x600.jpg
/images/b_800x600.desc
/images/c_3820x5640.cr2
/images/c_3820x5640.cr2
ls -l
vous pouvez voir le nombre de liens physiques dans la deuxième colonne.
rm
ces répertoires de liens symboliques et utiliser pax -rwl -s "\|.*regex|modifes_filename|" /path/to/myfiles/*.jpg /path/to/jpg_dir
par exemple pour obtenir des liens physiques avec des noms de fichiers modifiés par programme pour uniquement ceux qui correspondent à vos fichiers jpgs. Vous pouvez en tirer beaucoup plus que cela - comme le traitement par lots basé sur les temps de changement, etc.
find /myfiles -type f
dans un fichier, puis utiliserfind /images -type l -exec readlink {} \; | egrep myfiles
pour obtenir une liste de fichiers qui sont liés par des liens symboliques,/images
puis parcourir les résultats en faisant unsed
sur chacun pour supprimer les chemins d'accès dans le premier fichier que vous enregistrez car ils ont déjà avoir le lien symbolique et les fichiers restants sont les fichiers qui n'ont pas le lien symbolique.