Daha iyi bir çözüm bulmayı başaramazsanız, bu komut dosyasını deneyebilirsiniz:
#!/bin/bash
# NAME: pdfwalker
# AUTHOR: (c) 2014 Glutanimate <https://github.com/Glutanimate/>
# DESCRIPTION: Invoke one pdf file at a time
# DEPENDENCIES: mupdf
# LICENSE: GNU GPLv3 (http://www.gnu.de/documents/gpl-3.0.en.html)
############# Functions ###############
gui_notify(){
notify-send -i application-pdf "PDF Walker" "$1"
echo "$1"
}
arg_compose_filearray(){
# recursively add pdf files and folders in given arguments to array
unset Files
FileCountCurrent="1"
while IFS= read -r -d $'\0' File; do
if [[ ! "$(file -ib "$File")" == *application/pdf* ]]
then
echo "Error: '$File' is not a pdf file. Ignoring."
continue
fi
Files[FileCountCurrent++]="$File"
done < <(find "$@" -type f -name '*.pdf' -print0 | sort -z --version-sort)
FileCountTotal="${#Files[@]}"
}
arg_check(){
if [[ "$FileCountTotal" = "0" ]]; then
gui_notify "ERROR: No PDF files found."
echo "Exiting..."
exit 1
fi
}
############## Checks #################
arg_compose_filearray "$@"
arg_check
################ Main #################
FileCountCurrent="1"
for File in "${Files[@]}"; do
echo "Opening file $FileCountCurrent of $FileCountTotal:"
echo "$File"
mupdf "$File" > /dev/null 2>&1
((FileCountCurrent++))
done
echo "Done."
Kurulum
Yukarıdaki kod kutusunun içeriğini kopyalayıp yeni bir boş metin dosyasına yapıştırın, kaydedin ve komut dosyasını dosya yöneticinizin Özellikler menüsünden yürütülebilir olarak işaretleyin.
Tüm bağımlılıkları yüklediğinizden emin olun:
sudo apt-get install mupdf
kullanım
pdfwalker <pdf files or directories>
Örneğin:
pdfwalker "~/Downloads/PDF" "~/Documents/Scans"
Komut dosyası seçili dizinlerdeki tüm PDF dosyalarını yinelemeli olarak bulur ve birbiri ardına ile açar mupdf
. Satırdaki bir sonraki dosyaya geçmek için, geçerli mupdf
pencereyi kapatın ( Q). Komut dosyasından tamamen çıkmak istiyorsanız CTRL+ ile terminalden sonlandırabilirsiniz C.