Как на UNIX системах можно сжать все pdf файлы в подкаталогах, при этом не создавая новых файлов а перезаписывая старые?

Рейтинг: 0Ответов: 1Опубликовано: 19.07.2023

Я погуглил команды для сжатия, но все они работаю с одним файлом, а у меня их сотни и все разбросаны по подкаталогам. И даже если извратиться и как-то подсунуть в эти команды список файлов, они при работе создают новые файлы с другим именем. А мне нужно имя сохранить, так как это документы на хостинге и ссылки станут недействительны. Возможно написать php скрипт, но надо что-то придумывать с временем исполнения, там явно превышение будет.

Ответы

▲ 0

Разобрался. 1)Создаем список всех файлов нужного типа, например пдфок.

find ./путь -size +300k -iname '*.pdf' > list.txt

2)Создаем баш скрипт, передаем ему list.txt и сжимаем в цикле:

#!/bin/bash
input=$1
while IFS= read -r line
do
ps2pdf -dPDFSETTINGS=/ebook "$line" ./temp.pdf
mv -v ./temp.pdf "$line"
done < "$input"