У меня большой каталог myfiles, полный разных документов, и я не хочу изменять его структуру.
Поэтому я создал (несколько) других каталогов для каждого класса документов. Например, у меня есть каталог «images», в котором есть символические ссылки на каждый файл .jpg
или .cr2
файл в каталоге «myfiles» плюс другие описательные файлы для каждой символической ссылки (с тем же именем файла) с описанием и другими метаданными. Символические ссылки в каталоге / images могут иметь имя, отличное от исходного связанного файла.
Я пытаюсь найти самый простой способ убедиться, что каждый файл изображения в каталоге «myfiles» имеет символическую ссылку на каталог «images».
Смотрите пример структуры папок
/myfiles/a.doc
/myfiles/b.jpg
/myfiles/c.cr2
/myfiles/d.mov
должен привести
/images/b_800x600.jpg
/images/b_800x600.desc
/images/c_3820x5640.cr2
/images/c_3820x5640.cr2
ls -l
вы можете увидеть количество жестких ссылок во втором столбце.
rm
эти каталоги ссылок и используют, pax -rwl -s "\|.*regex|modifes_filename|" /path/to/myfiles/*.jpg /path/to/jpg_dir
например, для получения жестких ссылок с программно измененными именами файлов только для тех файлов, которые соответствуют вашим jpgs. Вы можете получить намного больше от этого - например, пакетирование, основанное на времени изменения и т. Д.
find /myfiles -type f
в файл, а затем использовать,find /images -type l -exec readlink {} \; | egrep myfiles
чтобы получить список файлов, в которых есть символические ссылки, а/images
затем перебрать результаты, выполнив ased
для каждого из них, чтобы удалить пути в первом сохраненном файле, поскольку они уже иметь символьную ссылку, а оставшиеся файлы - это файлы, которые не имеют символической ссылки.