Comme je travaille pas mal sur les livres électroniques, j'ai parfois une trentaine d'archives (.rar, .zip, .7zip) qui contiennent plusieurs fichiers. De ces archives, je ne veux qu'extraire un fichier spécifique. En l'occurrence le .epub.
Pour la première fois, je me suis tenté à faire un petit script afin de ne pas le faire à la main pour chaque archive.
Le voici :
#!/bin/bash
# Nécessite p7zip.
choose_dir () {
zenity --title="$1" --file-selection --filename=~ --directory 2>/dev/null
}
idir=$(choose_dir "Dans quel répertoire sont les archives ?")
(( $? ))
odir=$(choose_dir "Dans quel répertoire extraire les livres ?")
(( $? ))
for file in "$idir"/*.zip "$idir"/*.rar "$idir"/*.7z
do
case "${file##*.}" in
"rar") unrar e "$file" "*.epub" "${odir}/" ;;
"zip") unzip "$file" "*.epub" -d "${odir}/" ;;
"7z") 7zr e -o"${odir}/" "$file" "*.epub" ;;
*) ;;
esac
done
exit 0
./xepub.sh
unzip: cannot find or open /*.zip, /*.zip.zip or /*.zip.ZIP.
No zipfiles found.
UNRAR 5.60 freeware Copyright (c) 1993-2018 Alexander Roshal
No files to extract
7-Zip (a) [64] 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=fr_BE.UTF-8,Utf16=on,HugeFiles=on,64 bits,4 CPUs Intel(R) Core(TM) i5-5675C CPU @ 3.10GHz (40671),ASM,AES-NI)
Scanning the drive for archives:
Command Line Error:
Cannot find archive
Pourriez-vous aider le pôvre débutant que je suis ?
Merci.