Max compression with 7z 24 Dicembre 2007
Posted by fripp in Bash, GNU/Linux, Informatica, Scripting, Unix.Tags: 7-zip, 7z, archive format, compression, lzma, m0, manadou, mfb, mx
trackback
Mi capita spesso di usare il tool di compressione 7-zip e mi capita sempre di dimenticare gli switch per ottenere la massima compressione dei files. Dato che mi scoccia andare a guardare ogni volta nel man, mi sono fatto un piccolo script bash che fa tutto per me. Non è nulla di eccezionale, ma mi ha semplificato un sacco la procedura di compressione (mi risparmio pure di scrivere tonnellate di switch da terminale!).
Spero possa servire ad altri.
Ecco il codice:
#!/bin/bash
function usage(){
echo -e "\nmaxcompression: usage: maxcompression [-p] output_filename.7z input_filename"
exit 1
}
if [[ $# -gt 3 || $# -le 1 ]]; then
usage
fi
if [[ $# -eq 2 ]]; then
output_filename=$1
input_filename=$2
if [[ -f "$input_filename" || -d "$input_filename" ]]; then
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on $output_filename $input_filename 2>/dev/null
if [[ $? -ne 0 ]]; then
echo "Error while compressing files"
exit 1
fi
else
echo -e "\nInsert a valid input file/directory name\n"
echo "$input_filename is not a file/directory"
exit 1
fi
fi
if [[ $# -eq 3 ]]; then
output_filename=$2
input_filename=$3
if [[ -f "$input_filename" || -d "$input_filename" ]]; then
if [[ $1 == "-p" ]]; then
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on $1 $output_filename $input_filename 2>/dev/null
if [[ $? -ne 0 ]]; then
echo "Error while compressing files"
exit 1
fi
else
usage
fi
else
echo -e "\nInsert a valid input file/directory name\n"
echo "$input_filename is not a file/directory"
exit 1
fi
fi
Trovi il file sorgente qui













[...] 7z, archive format, compression, lzma, m0, manadou, mfb, mx trackback Ho migliorato lo script maxcompression in modo che adesso si possano comprimere più file alla volta. Nella prima versione dello script [...]