Я провел несколько тестов в дереве каталогов Photos, и у меня работает следующая система с двумя сценариями оболочки.
первый
:
#!/бин/баш
find * -type d -exec second {} \;
эхо ""
второй
:
#!/бин/баш
num=$(ls "$1"/*.jpg 2> /dev/null | wc -l)
если [$num-ne 0]
тогда
эхо -н "."
img2pdf -o "$1/${1//\//-}_${num}_pictures".pdf "$1"/*.jpg
фи
Изменить дважды: альтернативный сценарий второй
создает pdf-файл без количества картинок и «картинок» в названии:
#!/бин/баш
num=$(ls "$1"/*.jpg 2> /dev/null | wc -l)
если [$num-ne 0]
тогда
эхо -н "."
img2pdf -o "$1/${1##*/}".pdf "$1"/*.jpg
фи
Скопируйте и вставьте области кода в текстовый редактор и создайте файлы первый
и второй
Сделать их исполняемыми
chmod +x первая секунда
переместите их в каталог в PATH. Если это только для вашего личного использования, [создайте и] переместите их в ~/бен
. В противном случае, если другие пользователи также должны использовать эти сценарии оболочки, переместите их в /USR/местные/бен
мкдир ~/бин
mv первая секунда ~/bin
Вам может потребоваться перезагрузка, чтобы получить ~/бен
в свой ПУТЬ.
Теперь вы готовы их использовать. Смените каталог на самый верх или дерево каталогов, где находятся ваши картинки и запустите первый
.
Пример (но у вас местные названия, а не картинки как у английских),
компакт-диск ~/Изображения
первый
Он будет писать точку в окне терминала для каждого подкаталога, где он находит хотя бы одно изображение и создает файл PDF.
Вы можете найти файлы PDF с помощью следующей команды
найти -имя "*.pdf"
Основное редактирование:
После обсуждения с автором оригинального постера я думаю, что понял структуру дерева каталогов, которое необходимо обработать. Копии файлов более низких уровней находятся в каталогах sub-1 с именами людей.
Файлы в этих подкаталогах 1 должны быть объединены в pdf-файлы.
Пример:
$ дерево -U
.
ââ Адам
âââ mkusb-minp-2-crop.jpg
â  âââ us_keyboard_for_sudo_password.jpg
â  âââ nautilus-connect-to-server-2.jpg
❤ ❤ ❤ ❤ pict1
mkusb-minp-2-crop.jpg
â â  âââ nautilus-connect-to-server-2.jpg
❤ ❤ ❤ ❤ ❤ pict2
â â   âââ us_keyboard_for_sudo_password.jpg
âââ Адам.pdf
âââ Бетти
âââ nautilus-connect-to-server-1.jpg
âââ mkusb-minp-3-cropx.jpg
❤️ pict1
â  âââ nautilus-connect-to-server-1.jpg
â  âââ calamares-mount-failed.jpg
❤️ pict2
âââ mkusb-minp-3-cropx.jpg
âââ calamares-mount-failed.jpg
âââ Бетти.pdf
6 каталогов, 14 файлов
Если вы измените рабочий каталог с помощью CD
туда, где находятся эти каталоги имен, вы можете использовать следующие модифицированные первый
шеллскрипт.
#!/бин/баш
find -mindepth 1 -maxdepth 1 -type d -exec second {} \;
эхо ""
Он будет запускать второй
shellscript только в каталогах имен и не искать то, что находится в [верхних или] нижних уровнях дерева каталогов.
Ниже показано, как найти
находит только каталоги имен
$ найти -минглубина 1 -максимальная глубина 1
./Адам
./Бетти