Se scelgo un file zip e clicco destro "estrai qui" viene creata una cartella con il nome file zip e viene estratto l'intero contenuto del file zip.crea la cartella per il file zip ed estrai in essa
Tuttavia, mi piacerebbe convertire diversi file zip tramite shell. Ma quando faccio
unzip filename.zip
la cartella "filename"
non viene creata, ma tutti i file vengono estratti nella directory corrente.
Ho esaminato i parametri ma non esiste alcun parametro. Ho anche provato
for zipfile in \*.zip; do mkdir $zipfile; unzip $zipfile -d $zipfile/; done
ma la .zip
estensione del file zip 2. $ e $ 4. zipfile deve essere rimosso con sed. Se faccio
for zipfile in \*.zip; do mkdir sed 's/\.zip//i' $zipfile; unzip $zipfile -d sed 's/\.zip//i' $zipfile/; done
non sta funzionando.
Come sostituire correttamente l'estensione .zip
di $zipfile
?
C'è un modo più semplice di uno script di shell?
Grazie, funziona come un fascino. – jack
Ma quello che non capisco è perché $ 0 contiene il nome completo del file e $ 1 non l'estensione ".zip"? – jack
@jack Ho definito ".zip" come FS (Field Separator). Quindi 001.zip verrà separato in due parti "001" e "". $ 1 è il primo campo. e $ 0 è l'intera riga che in questo caso è "001.zip" in awk, il campo è contato da 1, non 0. – Kent