Ho una grande directory "myfiles" piena di documenti vari e non voglio modificarne la struttura.
Ho quindi creato (diverse) altre directory per ogni classe di documenti. Ad esempio, ho una directory "images" che contiene collegamenti simbolici a ciascuno .jpg
o .cr2
file nella directory "myfiles" più altri file descrittivi per ciascun collegamento simbolico (con lo stesso nome file) con descrizione e altri metadati. I collegamenti simbolici nella directory / images potrebbero avere un nome diverso dal file collegato originale.
Sto cercando di trovare il modo più semplice per assicurarmi che ogni singolo file di immagine nella directory "myfiles" abbia un link simbolico nella directory "images".
Vedi un esempio della struttura delle cartelle
/myfiles/a.doc
/myfiles/b.jpg
/myfiles/c.cr2
/myfiles/d.mov
dovrebbe risultare
/images/b_800x600.jpg
/images/b_800x600.desc
/images/c_3820x5640.cr2
/images/c_3820x5640.cr2
ls -l
puoi vedere il conteggio degli hardlink nella seconda colonna.
rm
quelle dir di symlink e usate pax -rwl -s "\|.*regex|modifes_filename|" /path/to/myfiles/*.jpg /path/to/jpg_dir
ad esempio per ottenere hardlink con nomi di file modificati a livello di programmazione solo per quei file che corrispondono ai tuoi jpg. Puoi ricavarne molto di più - come il raggruppamento in base ai tempi di cambio ecc.
find /myfiles -type f
in un file, quindi utilizzarefind /images -type l -exec readlink {} \; | egrep myfiles
per ottenere un elenco di file con collegamento simbolico,/images
quindi scorrere i risultati facendo unosed
su ciascuno per eliminare i percorsi nel primo file salvato poiché già avere il link simbolico e i file rimasti sono i file che non hanno il link simbolico.