Ich habe eine 7z-Archivdatei, die auf der "Root" -Ebene einige Dateien enthält, und dann ein Verzeichnis, das wiederum sowohl Dateien als auch Ordner wie folgt enthält:
- file1.txt
- file2.txt
- my_dir
- file3.txt
- file4.txt
- another_dir
- file5.txt
- file6.txt
Ich würde gerne wissen , ob es ein einziger Befehl, den mir das extrahieren Inhalt des my_dir
innerhalb eines Verzeichnisses meiner Wahl , so dass das Endergebnis ist:
- target_dir
- file3.txt
- file4.txt
- another_dir
- file5.txt
- file6.txt
Ich habe diese Befehle ausprobiert:
7za x -y archive.7z -o/path/to/target_dir my_dir
7za x -y archive.7z -o/path/to/target_dir 'my_dir/*'
aber beide haben diese Verzeichnisstruktur erstellt:
- target_dir
- my_dir
- file3.txt
- file4.txt
- another_dir
- file5.txt
- file6.txt
linux
command-line
7-zip
Matteo Tassinari
quelle
quelle
7z x archive.7z my_dir -y -r -otarget_dir
?Antworten:
Gibt es einen einzigen Befehl, mit dem my_dir in ein bestimmtes Verzeichnis extrahiert werden kann?
Ja. Verwenden Sie die
e
Option anstelle vonx
:(
x
ist Extrakt mit vollen Pfaden )Quell- e-Befehl (Extrahieren)
Tatsächlich enthält der Ordner im Archiv Unterordner, die ich beibehalten möchte
In diesem Fall müssen Sie den ursprünglichen Befehl (mit
x
) verwenden und dannmove
den Inhaltmy_dir
einer Ebene nach oben verschieben.So etwas wie die folgende Batch-Datei (nicht getestet):
Über die Befehlszeile:
Aber ich benutze Linux!
Dann sind die zu verwendenden Befehle:
Oder:
Was wahrscheinlich von jemandem vereinfacht werden kann, der es
bash
besser weiß als ich.Weiterführende Literatur
quelle
x
Option verwenden und dannmove
den Inhaltmy_dir
einer Ebene nach oben verschieben.