Я пытаюсь выяснить, как написать скрипт для автоматизации создания .cbz файлов из изображений в папках на OSX.
Мое дерево каталогов будет выглядеть так:
/toplevel/
cbz/
comics/
Comic1/
comic1file1.jpg
comic1file2.gif
comic1file3.png
Comic2/
comic2file1.jpg
comic2file2.gif
Publisher/
Comic3/
comic3file1.jpg
comic3file2.gif
comic3file3.png
Comic4/
comic4file1.jpg
comic4file2.gif
И что я хотел бы сделать, это запустить скрипт, который найдет любую папку, содержащую реальные файлы, а не подпапки, и заархивирует ее, переименует ее из .zip в .cbz и переместит файл .cbz в папку /cbz на верхнем уровне. Любая папка, которая содержит подпапки, не должна содержать никаких файлов, так что это может быть полезно. Также я не ожидаю, что когда-либо будут подпапки глубже, чем показано в примере выше.
Где я нахожусь: этот фрагмент просматривает папку и создает .cbz-файлы для каждой подпапки.
for dir in `ls`; do zip $dir $dir/*; mv $dir*zip $dir.cbz; done
Я также нашел несколько фрагментов, которые будут выполнять что-то похожее на каждую подпапку в выбранной папке, но у меня были разные результаты, и мне было бы очень интересно узнать, как лучше всего выполнить операцию только с папками. Кроме того, я не имею понятия о том, как я должен проверить, содержит ли данная папка подпапки или файлы. (Полагаю, в идеале мне следует включить проверки, чтобы увидеть, есть ли и то и другое, но для моего текущего сценария этого не должно быть.) Есть идеи?