Gibt es einen einzigen Befehl, mit dem my_dir in ein angegebenes Verzeichnis extrahiert werden kann?
Ja. Verwenden Sie die e
Option anstelle von x
:
7za e -y archive.7z -o/path/to/target_dir my_dir
( x
ist Auszug mit vollen Pfaden )
e (Extrahieren) Befehl
Extrahiert Dateien aus einem Archiv in das aktuelle Verzeichnis oder in das Ausgabeverzeichnis. Das Ausgabeverzeichnis kann mit dem Schalter -o (Set Output Directory) festgelegt werden.
Dieser Befehl kopiert alle extrahierten Dateien in ein Verzeichnis. Wenn Sie Dateien mit vollständigen Pfaden extrahieren möchten, müssen Sie den Befehl x (Extrahieren mit vollständigen Pfaden) verwenden.
Befehl für Quelle e (Extrahieren)
Tatsächlich enthält der Ordner im Archiv Unterordner, die ich behalten möchte
In diesem Fall müssen Sie den Originalbefehl (mit x
) verwenden und dann move
den Inhalt my_dir
einer Ebene nach oben verschieben.
Etwas wie die folgende Batchdatei (nicht getestet):
@echo off 7za x -y archive.7z -o/path/to/target_dir my_dir move /y my_dir\* /path/to/target_dir rd /s my_dir endlocal
Von der Kommandozeile aus:
7za x -y archive.7z -o/path/to/target_dir my_dir && move /y my_dir\* /path/to/target_dir && rd /s my_dir
Aber ich verwende Linux!
Dann sind folgende Befehle zu verwenden:
#!/bin/bash 7za x -y archive.7z -o/path/to/target_dir my_dir mv -f my_dir/* /path/to/target_dir rmdir my_dir
Oder:
7za x -y archive.7z -o/path/to/target_dir my_dir && mv -f my_dir/* /path/to/target_dir && rmdir my_dir
Was wahrscheinlich von jemandem vereinfacht werden kann, der es bash
besser weiß als ich.