Похоже, что лучший способ справиться с этим — использовать direct file вывод. Таким образом показания du
будут намного точнее.
К сожалению, это позволяет только dd
, поэтому нам необходимо решить две проблемы:
dd
не знает, что делать с каталогами dd
может копировать только один файл за раз Сначала давайте определим входные и выходные каталоги:
SOURCE="/media/source-dir"
TARGET="/media/target-dir"
Теперь давайте cd
в исходный каталог, чтобы find
сообщал об относительных каталогах, которыми мы можем легко манипулировать:
cd "$SOURCE"
Дублировать дерево каталогов из $SOURCE
в $TARGET
find . -type d -exec mkdir -p "$TARGET{}" \;
Дублировать файлы из $SOURCE
в $TARGET
без кэша записи (но с использованием чтения cache!)
find . -type f -exec dd if={} of="$TARGET{}" bs=8M oflag=direct \;
Это не сохранит время изменения файла, владельца и другие атрибуты, но для меня это нормально.
gawk '{ f=f " " $0}
NR%15==0 { print("wrhtml2pdf " f " " NR/15 ".pdf") ; f=""}' urls
и, если вам нравится вывод, замените print
на system
С xargs
:
xargs -a urlsfile -n 15 bash -c 'wkhtmltopdf "$ @" my _ $$. pdf '
или если ваш xargs
не поддерживает -a
:
cat urlsfile | xargs -n 15 bash -c 'wkhtmltopdf "$ @" my _ $$. pdf'