У меня есть семейные фотографии и видео на десятилетия, которые организованы и помечены в дереве каталогов, содержащем тысячи каталогов. В общем, пути к файлам выглядят так:
/my_giant_pictures_dir/year/month_day_ "описание события"/ имя файла
Примером может быть:
/my_giant_pictures_dir/2016/07_27_Путешествие в Антарктиду /IMG_00001.jpg
обратите внимание, что «event» или самые глубокие каталоги могут содержать файлы .jpg, .mp4 и .mts.
Моя проблема с этим соглашением состоит в том, что я получаю много глубочайших медиа-каталогов, которые, поскольку они упорядочены по дате, содержат только один или несколько файлов. (Дни, когда был сделан только один снимок, например). Это делает просмотр, скажем, всех снимков, сделанных в течение трех месяцев, довольно утомительным.
Я хотел бы реструктурировать все эти средства массовой информации, сохранив все в хронологическом порядке, как есть, но исключив все промежуточные подкаталоги после года. Я хотел бы сделать это, добавив каждое имя файла мультимедиа с именем "month_day_event" его родительского каталога, например:
вместо:
/ Фотографии / 2016 / 07_27_Путешествие в Антарктиду / IMG_00001.jpg
...Я бы предпочел иметь:
/ Фотографии / 2016 / 07_27_Путешествие в Антарктиду_IMG_00001.jpg
Есть ли команда bash, которая делала бы это для каждого файла .jpg, .mp4 и .mts во всей моей папке с изображениями, а затем, после имени файла, добавьте их из родительского каталога в следующий самый высокий каталог, который в каждом дело год каталог?
И, возможно, он требует слишком много, но может ли он также удалить тогда пустые подкаталоги, которые содержатся в каталогах года? Я не против запуска нескольких команд, если это необходимо, потому что в любом случае ваш ответ сэкономит мне бесчисленные часы.
Заранее большое спасибо!