Ви, напевно, мали опублікувати це як коментар до іншого питання, але, знову ж таки, вам знадобилося б більше репутації для цього.
Сценарій @ davidgo вже рекурсивний (він перейде через папки та підпапки). Вам доведеться лише змінити echo "$each NOT searchable"
щоб змінити те, що він робить, знаходячи файл, який не можна шукати. Це має зробити трюк:
Редагувати : Існували деякі проблеми з тим, як сценарій обробляв пробіли в іменах файлів і деякі інші проблеми тут і там. Я вирішив переробити оригінальний сценарій davidgo, щоб ви побачили ще кілька змін, ніж я сказав вище.
#! /bin/bash
if [[ ! "$#" = "2" ]]
then
echo "Usage: $0 /path/to/PDFDirectory /path/to/TARGETDirectory"
exit 1
fi
PDFDIRECTORY="$1"
TARGETDIR="$2"
while IFS= read -r -d $'\0' FILE; do
PDFFONTS_OUT="$(pdffonts "$FILE" 2>/dev/null)"
RET_PDFFONTS="$?"
FONTS="$(( $(echo "$PDFFONTS_OUT" | wc -l) - 2 ))"
if [[ ! "$RET_PDFFONTS" = "0" ]]
then
READ_ERROR=1
echo "Error while reading $FILE. Skipping..."
continue
fi
if [[ "$FONTS" = "0" ]]
then
echo "NOT SEARCHABLE: $FILE -- Copying to $TARGETDIR."
cp -v "$FILE" "$TARGETDIR/${FILE##*/}"
else
echo "SEARCHABLE: $FILE"
fi
done < <(find "$PDFDIRECTORY" -type f -name '*.pdf' -print0)
echo "Done."
if [[ "$READ_ERROR" = "1" ]]
then
echo "There were some errors."
fi
Збережіть цей сценарій у новому порожньому файлі, назвіть його подібним copy_image_pdf
і зробити його виконуваним через властивості файлу (я припускаю, що ви зробите це на Ubuntu).
Потім запустіть його з терміналу, надаючи каталог PDF і цільову директорію, де повинні бути скопійовані файли PDF, наприклад:
copy_image_pdf /media/data/pdffiles /media/data/pdffiles-to-be-ocred