Ich habe ein großes "myfiles" -Verzeichnis voller verschiedener Dokumente und möchte seine Struktur nicht ändern.
Ich habe daher (mehrere) andere Verzeichnisse für jede Dokumentklasse erstellt. Zum Beispiel habe ich ein "images" -Verzeichnis, das Symlinks zu jedem .jpg
oder einer .cr2
Datei im "myfiles" -Verzeichnis sowie weitere beschreibende Dateien für jeden Symlink (mit demselben Dateinamen) mit Beschreibung und anderen Metadaten enthält. Die Symlinks im Verzeichnis / images haben möglicherweise einen anderen Namen als die ursprünglich verknüpfte Datei.
Ich versuche den einfachsten Weg zu finden, um sicherzustellen, dass jede Bilddatei im Verzeichnis "myfiles" einen Symlink zum Verzeichnis "images" hat.
Sehen Sie sich ein Beispiel für die Ordnerstruktur an
/myfiles/a.doc
/myfiles/b.jpg
/myfiles/c.cr2
/myfiles/d.mov
sollte resultieren
/images/b_800x600.jpg
/images/b_800x600.desc
/images/c_3820x5640.cr2
/images/c_3820x5640.cr2
ls -l
können Sie die Anzahl der Hardlinks in der zweiten Spalte sehen.
rm
Diese Symlink-Verzeichnisse werden pax -rwl -s "\|.*regex|modifes_filename|" /path/to/myfiles/*.jpg /path/to/jpg_dir
beispielsweise verwendet, um Hardlinks mit programmgesteuert geänderten Dateinamen nur für diejenigen Dateien abzurufen, die Ihren JPGs entsprechen. Sie können viel mehr als das
find /myfiles -type f
in einer Datei speichern und dann verwendenfind /images -type l -exec readlink {} \; | egrep myfiles
, um eine Liste der Dateien zu erhalten, die mit Symlinks verknüpft sind./images
Anschließend können Sie die Ergebnisse durchlaufen undsed
jeweils eine ausführen , um die Pfade in der ersten Datei zu löschen, die Sie speichern, da sie bereits vorhanden sind Haben Sie den Symlink und die verbleibenden Dateien sind die Dateien, die den Symlink nicht haben.