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