Vorrei creare uno scriptino in bash per estrarre archivi
come faccio a riconoscere l'estensione del file tramite uno script bash?
Moderatore: Staff

jimmy_page_89 ha scritto:Vorrei creare uno scriptino in bash per estrarre archivi
come faccio a riconoscere l'estensione del file tramite uno script bash?
${filename##*.}


if file "${CWD}/${SRC_FILENAME}" | grep "bzip2" ; then
tar xjvf "${CWD}/${SRC_FILENAME}" || exit 1
elif file "${CWD}/${SRC_FILENAME}" | grep "gzip" ; then
tar xzvf "${CWD}/${SRC_FILENAME}" || exit 1
elif file "${CWD}/${SRC_FILENAME}" | grep "Zip" ; then
unzip "${CWD}/${SRC_FILENAME}" || exit 1
else
echo "ERROR"
echo "Archive file-type unknown"
exit 1
fi


Ansa89 ha scritto:Credo ci sia un errore nel tuo script: tu usi sempre il comando tar, dando per scontato che l'archivio sia *.tar.[bz2,gz].
Questo non è sempre vero: il file potrebbe essere semplicemente compresso come gzip (bzip2), senza per forza essere un tape archive.

current_filename = $1
function recheck {
if `echo $current_filename | grep -q "\."`
then
current_filename = `echo current_filename | sed s/\.[a-zA-Z0-9]*$//`
else
re-check = 0
fi
}
while [[ re-check != 0 ]]
do
filetype = `file $current_filename | cut -d':' -f2 | cut -d' ' -f1`
case filetype in
tar) untar $current_filename;;
bzip2) bunzip2 $current_filename;;
*) exit;;
esac
recheck
done
albatrosla ha scritto:Nulla può con i file nominati in modo ostrogoto (ad es. l'estensione tgz utilizzata come contrazione di tar.gz).

Visitano il forum: Nessuno e 2 ospiti