Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.
7z Verzeichnisse packen
- Ersteller Don_2020
- Erstellt am
ATIst
Lt. Junior Grade
- Registriert
- Feb. 2006
- Beiträge
- 301
Hab gerade keinen Computer da, aber sollte doch einfach mit Rechtsklick auf den Ordner 7-Zip>Archiv erstellen oder so gehen, da kannst du dann noch zwischen ZIP und 7Z auswählen. Falls du Windows 11 nutzt, musst du noch ganz unten im Rechtsklick Menü die anderen Optionen einblenden.
Ich möchte nicht jeden Ordner einzeln auswählen, sondern alle Verzeichnisse im Unterordner "Testdaten" sollen gepackt werden. Im Ordenr "Testadten" befinden sich ca. 500 Unterordner.
Das von ATist nbeschriebene Vorgehen passt genau für einen Ordner.
Markiere ich mehrer Orndner wird als Dateiname "Testdaten" vorgewählt. Genau das möchte ich aber nicht.
Das von ATist nbeschriebene Vorgehen passt genau für einen Ordner.
Markiere ich mehrer Orndner wird als Dateiname "Testdaten" vorgewählt. Genau das möchte ich aber nicht.
Alexander2
Fleet Admiral
- Registriert
- Aug. 2014
- Beiträge
- 12.903
Schreibe halt eine Scriptdatei für so Spezifische Anwendungsfälle.
Du kannst doch den Namen des Archivs vorm Komprimieren wählen oder auch hinterher umbenennen.Don_2020 schrieb:Markiere ich mehrer Orndner wird als Dateiname "Testdaten" vorgewählt. Genau das möchte ich aber nicht.
Ergänzung ()
7-Zip liefert doch bei der Installation eine brauchbares User Guide für die Command Line Version mit.Don_2020 schrieb:Wenn ich wüste wie man eine Scriptdatei schreibt würde ich hier nicht Fragen.
Google hat bisher nichts brauchbares gefunden.
slrzo
Lt. Commander
- Registriert
- März 2011
- Beiträge
- 1.146
Google erstes Ergebnis bei mir nach "zip each folder"
https://www.itsupportguides.com/kno...-to-create-individual-zip-files-from-folders/
https://www.itsupportguides.com/kno...-to-create-individual-zip-files-from-folders/
J
Joe58
Gast
J
Joe58
Gast
Sowas dann.
Mehrere komprimierte Ordner mit 7Zip auf einmal erstellen
Google hat was brauchbares gefunden.
Mehrere komprimierte Ordner mit 7Zip auf einmal erstellen
Google hat was brauchbares gefunden.
Alexander2
Fleet Admiral
- Registriert
- Aug. 2014
- Beiträge
- 12.903
hab grad mal nen Script geschrieben, als Beispiel. (da ich Linuxer bin ist das natürlich nen shell script, explizit für Bash). Ich habs getestet, es sucht nach den Verzeichnisnamen und macht aus jedem eine einzelne Zip Datei mit dem Inhalt der Ordner und das 7z mit dem Namen der Ordner:
Edit:
Es sucht in dem Verzeichnis wo es liegt/ausgeführt wird nach den Ordnern erster Ebene. und nur Ordner.
Die 7z Dateien landen im selben Verzeichnispfadwo es ausgeführt wird. ganz simpel gestrickt das Script.
Es ist keine parallelisierung eingebaut, was aber super einfach wäre.ein job per Verzeichnis starten lassen. (einfach ein & am ende der 7z Befehlszeile)
Edit:
am längsten hat natürlich gedauert nach den passenden abfragen und Filtern zu suchen und das zu testen, soo lang wars aber auch nicht
also optional parallel:
Edit:
Zu bedenken ist, das je nach Rechner und Hardware das parallele starten sehr von nachteil oder Vorteil sein kann. HDD kommen garnicht gut mit dem parallelen zugriff klar... SSd werden Teils deutlich schneller umso mehr parallel läuft.
Bash:
#!/bin/bash
for i in $(ls --format=single-column -F | grep -i \/ | sed s/\\//""/)
do
echo "gerade bearbeitet wird:"$i":"
7z a "$i.7z" $i
done
Edit:
Es sucht in dem Verzeichnis wo es liegt/ausgeführt wird nach den Ordnern erster Ebene. und nur Ordner.
Die 7z Dateien landen im selben Verzeichnispfadwo es ausgeführt wird. ganz simpel gestrickt das Script.
Es ist keine parallelisierung eingebaut, was aber super einfach wäre.ein job per Verzeichnis starten lassen. (einfach ein & am ende der 7z Befehlszeile)
Edit:
am längsten hat natürlich gedauert nach den passenden abfragen und Filtern zu suchen und das zu testen, soo lang wars aber auch nicht
also optional parallel:
Bash:
#!/bin/bash
for i in $(ls --format=single-column -F | grep -i \/ | sed s/\\//""/)
do
echo "gerade bearbeitet wird:"$i":"
7z a "$i.7z" $i &
done
Edit:
Zu bedenken ist, das je nach Rechner und Hardware das parallele starten sehr von nachteil oder Vorteil sein kann. HDD kommen garnicht gut mit dem parallelen zugriff klar... SSd werden Teils deutlich schneller umso mehr parallel läuft.
Zuletzt bearbeitet:
@Joe58: Danke das ist der richtige Weg. Was noch fehlt ist die Grö0e der Wiederherstellungsinformationen (10% wäre gut) und die Größe der Teildateien (z.B. 700 MB).
@Alexander2: Leider funktioniert das Script nicht unter Windows.
@Alexander2: Leider funktioniert das Script nicht unter Windows.
Sofern es nicht unbedingt 7zip sein muss:
WinRAR bietet die Funktion, jede ausgewaehlte Datei bzw. jeder Ordner in ein eigenes Archiv zu packen (-> Reiter: "Datei" -> haken bei "Jede Datei in ein eigenes Archiv packen").
Es lassen sich auch Profile vordefinieren und im Kontextmenue hinterlegen.
Allerdings ist dann nur *.rar, *.rar4 oder *.zip moeglich.
WinRAR bietet die Funktion, jede ausgewaehlte Datei bzw. jeder Ordner in ein eigenes Archiv zu packen (-> Reiter: "Datei" -> haken bei "Jede Datei in ein eigenes Archiv packen").
Es lassen sich auch Profile vordefinieren und im Kontextmenue hinterlegen.
Allerdings ist dann nur *.rar, *.rar4 oder *.zip moeglich.
J
Joe58
Gast
Was bezweckst du eigentlich damit, dass jeder Ordner einzeln verpackt werden soll?
Stuffz
Lt. Commander
- Registriert
- Dez. 2017
- Beiträge
- 1.477
Wieso, hat heute nicht praktisch jeder git-bash drauf? Musst nur aufpassen, das Script mit Unix-Newlines zu speichern.Don_2020 schrieb:@Joe58: Danke das ist der richtige Weg. Was noch fehlt ist die Grö0e der Wiederherstellungsinformationen (10% wäre gut) und die Größe der Teildateien (z.B. 700 MB).
@Alexander2: Leider funktioniert das Script nicht unter Windows.
@Alexander2 Die zweite Variante mit In-den-Hintergrund-forken würde ich nicht nehmen. 7z arbeitet schon parallel, daher unnötig. Macht nur schnell den Rechner platt.
Alexander2
Fleet Admiral
- Registriert
- Aug. 2014
- Beiträge
- 12.903
Ja, kommt definitiv auf den usecase an, bei extrem vielen Ordnern mit sehr sehr kleinen Dateien oder wenig Inhalt würde ich dem durchaus eine Chance geben. eine Begrenzung auf x parallel gestartete Instanzen wäre noch sinnvoll und möglich, aber zu viel für mal eben schnell nen Script hin pfuschen.
Tzk
Commodore
- Registriert
- Nov. 2016
- Beiträge
- 4.308
Das solltest du als Medienkompetenzübung doch sicher selbst in der Hilfe von 7zip nachlesen können. Die beiden Sachen kann man sicher als Parameter im Skript mit übergeben...Don_2020 schrieb:Was noch fehlt ist die Grö0e der Wiederherstellungsinformationen (10% wäre gut) und die Größe der Teildateien (z.B. 700 MB).
Stuffz
Lt. Commander
- Registriert
- Dez. 2017
- Beiträge
- 1.477
@Alexander2 Ja trotzdem, mit der Schleife da kann man das nicht so genau steuern. Auch die sed/grep-Orgie finde ich nicht schön. Wenn schon, dann:
Edit: Übersetzung: finde alles vom Typ Directory auf der Ebene mit Tiefe 1, also nur genau die Ordner darunter, übergebe die Liste als Null-Terminierte (wegen Spaces u.a. Müll) Strings zu xargs, und xargs wirft das einzeln (-n1) auf ein Bash-Kommando, welches das unter $0 vorfindet.
ANZAHL_DER_THREADS mit gewünschtem Wert als Umg.variable setzen (z.B. 4), oder statt
Bash:
find -maxdepth 1 -mindepth 1 -print0 -type d | xargs -P$ANZAHL_DER_THREADS -n1 -0 bash -c 'cd "$0" && 7z a "../$0.7z" .'
Edit: Übersetzung: finde alles vom Typ Directory auf der Ebene mit Tiefe 1, also nur genau die Ordner darunter, übergebe die Liste als Null-Terminierte (wegen Spaces u.a. Müll) Strings zu xargs, und xargs wirft das einzeln (-n1) auf ein Bash-Kommando, welches das unter $0 vorfindet.
ANZAHL_DER_THREADS mit gewünschtem Wert als Umg.variable setzen (z.B. 4), oder statt
$ANZAHL_DER_THREADS
dann eben die Anzahl da, oder $NUMBER_OF_PROCESSORS
unter Windows für alle Kerne unter Windows bzw. $(nproc)
unter Linux. Wenn der Rechner überfahren wird: nice -n10
vor das 7z-Kommando packen.
Zuletzt bearbeitet:
Ähnliche Themen
- Antworten
- 11
- Aufrufe
- 437
- Antworten
- 3
- Aufrufe
- 912