У меня большой каталог 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для каждого из них, чтобы удалить пути в первом сохраненном файле, поскольку они уже иметь символьную ссылку, а оставшиеся файлы - это файлы, которые не имеют символической ссылки.