Repack 7z-Dateien in Zip-Dateien in Linux
Ich habe ein Verzeichnis mit vielen .7z-Dateien, ich muss jede von ihnen als Zip-Archiv neu packen, wie kann ich das automatisch unter Linux machen?
2 answers
Verwenden Sie das folgende Skript und führen Sie es aus dem Verzeichnis aus, in dem sich Ihre .7z
- Dateien befinden:
#!/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
Dadurch bleiben Ihre .7z
- Dateien dort, wo sie sich befinden, und es werden .zip
- Dateien mit demselben Namen erstellt.
Das Skript kopiert die .7z
- Dateien in das temporäre Verzeichnis, bevor sie extrahiert werden, da sie normalerweise nach dem Dekomprimieren der Dateien gelöscht werden.
Ich habe das Skript so einfach wie möglich gehalten, damit Sie leicht herausfinden können, wie es funktioniert.
Das Skript funktioniert nur, mit .7z
Dateien, die keine Leerzeichen oder andere Sonderzeichen in ihrem Namen haben.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-08-20 06:27:12
Sie können auch einfach das Werkzeug arepack
verwenden, das Teil der Atool-Toolsuite ist. Es ist normalerweise ein yum install atool
oder apt install atool
. Möglicherweise müssen Sie auch die Pakete p7zip-full
und p7zip-rar
installieren, wenn sie noch nicht installiert sind. Sobald diese verfügbar sind, können Sie dies einfach tun:
$ arepack -e -F zip *.7z
Dies wird alle konvertieren .7z-Dateien .zip-Dateien. Sie müssen das *noch löschen.7z-Dateien, aber das kann einfach so gemacht werden:
$ rm -f *.7z
Zusätzliche Arepack-Optionen
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".
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-01-30 23:18:54