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 .jpgoder einer .cr2Datei 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 -lkönnen Sie die Anzahl der Hardlinks in der zweiten Spalte sehen.
rmDiese Symlink-Verzeichnisse werden pax -rwl -s "\|.*regex|modifes_filename|" /path/to/myfiles/*.jpg /path/to/jpg_dirbeispielsweise 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 fin 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./imagesAnschließend können Sie die Ergebnisse durchlaufen undsedjeweils 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.