Saya memiliki direktori dengan banyak file .7z, saya perlu mengemasnya kembali sebagai arsip zip, bagaimana saya bisa melakukan ini secara otomatis di linux?
Gunakan skrip berikut dan jalankan dari direktori tempat Anda .7z
file adalah:
#!/bin/bash
TMPDIR=tempdir_$$
for x in `ls *.7z`; do
mkdir $TMPDIR
cd $TMPDIR
cp ../$x .
p7zip -d $x
zip -r ../${x%.7z}.zip *
cd ..
rm -rf $TMPDIR
done
Ini akan meninggalkan Anda .7z
file di mana mereka berada dan buat .zip
file dengan nama yang sama.
Script menyalin .7z
file ke direktori sementara sebelum mengekstraknya karena biasanya dihapus setelah mendekompresi file.
Saya membuat skrip sesederhana mungkin sehingga Anda dapat dengan mudah mengetahui cara kerjanya.
Script hanya akan bekerja dengan .7z
file yang tidak memiliki spasi atau karakter khusus lainnya dalam namanya.
Anda juga bisa menggunakan arepack
alat yang merupakan bagian dari rangkaian alat atool. Biasanya a yum install atool
atau apt-get install atool
. Setelah ini tersedia, Anda cukup melakukan ini:
$ arepack -e -F zip *.7z
Ini akan mengonversi semua file .7z menjadi file .zip. Anda masih perlu menghapus file * .7z, tetapi itu bisa dilakukan seperti:
$ rm -f *.7z
Options:
-e, --each execute command above for each file specified
-F, --format=EXT override archive format (see below)
-O, --format-option=OPT give specific options to the archiver
-D, --subdir always create subdirectory when extracting
-f, --force allow overwriting of local files
-q, --quiet decrease verbosity level by one
-v, --verbose increase verbosity level by one
-V, --verbosity=LEVEL specify verbosity (0, 1 or 2)
-p, --page send output through pager
-0, --null filenames from standard in are null-byte separated
-E, --explain explain what is being done by atool
-S, --simulate simulation mode - no filesystem changes are made
-o, --option=KEY=VALUE override a configuration option
--config=FILE load configuration defaults from file
Archive format (for --format) may be specified either as a
file extension ("tar.gz") or as "tar+gzip".