Mam duży katalog „myfiles” pełen różnych dokumentów i nie chcę modyfikować jego struktury.
Dlatego stworzyłem (kilka) innych katalogów dla każdej klasy dokumentów. Na przykład mam katalog „images”, który zawiera dowiązania symboliczne do każdego .jpg
lub .cr2
pliku w katalogu „myfiles” plus inne pliki opisowe dla każdego dowiązania symbolicznego (o tej samej nazwie) z opisem i innymi metadanymi. Dowiązania symboliczne w katalogu / images mogą mieć inną nazwę niż oryginalny połączony plik.
Próbuję znaleźć najprostszy sposób, aby upewnić się, że każdy plik obrazu w katalogu „myfiles” ma dowiązanie symboliczne do katalogu „images”.
Zobacz przykład struktury folderów
/myfiles/a.doc
/myfiles/b.jpg
/myfiles/c.cr2
/myfiles/d.mov
powinien wynikać
/images/b_800x600.jpg
/images/b_800x600.desc
/images/c_3820x5640.cr2
/images/c_3820x5640.cr2
ls -l
możesz zobaczyć liczbę linków w drugiej kolumnie.
rm
te katalogi dowiązań symbolicznych i używają pax -rwl -s "\|.*regex|modifes_filename|" /path/to/myfiles/*.jpg /path/to/jpg_dir
na przykład twardych dowiązań z programowo zmienionymi nazwami plików tylko dla tych plików, które pasują do twoich plików jpg. Możesz z tego uzyskać znacznie więcej - na przykład grupowanie na podstawie czasów zmian itp.
find /myfiles -type f
pliku do pliku, a następnie użyć go,find /images -type l -exec readlink {} \; | egrep myfiles
aby uzyskać listę plików, które są dowiązane symbolicznie,/images
a następnie iterować wyniki, wykonującsed
każdy z nich w celu usunięcia ścieżek w pierwszym zapisanym pliku, ponieważ są one już zapisane mieć dowiązanie symboliczne, a pozostałe pliki to pliki, które nie mają dowiązania symbolicznego.