[LINUX] [Entpacken] So dekomprimieren Sie nur beliebige Dateien von Dateien mit umgekehrten Verzeichnisbegrenzern in Zip-Dateien

Es mag offensichtlich sein, aber ich konnte die Antwort nicht finden, selbst wenn ich sie in dem Gefühl nachgeschlagen habe, also werde ich sie aufschreiben, um mich daran zu erinnern.

Was ist passiert

Wenn Sie nur eine bestimmte Datei mit dem Befehl unzip dekomprimieren möchten

Wenn Sie eine Zip-Datei wie die folgende haben

hoge.zip


$ zipinfo -1 hoge.zip
aaa/bbb/ccc.txt
ddd/eee/fff.jpg
ggg/hhh/iii.log

Dies kann durch Entpacken von {zu dekomprimierendem Zip} {Dateipfad, den Sie extrahieren möchten} erreicht werden.

$ unzip hoge.zip aaa/bbb/ccc.txt

Aber wenn das Verzeichnistrennzeichen in der Zip-Datei ein Backslash war

hoge_bs.zip


$ zipinfo -1 hoge_bs.zip
aaa\bbb\ccc.txt
ddd\eee\fff.jpg
ggg\hhh\iii.log

Wenn Sie einen Befehl mit demselben Ton eingeben, tritt ein Fehler auf.

$ unzip hoge_bs.zip aaa\bbb\ccc.txt
Archive:  hoge_bs.zip
caution: filename not matched:  aaabbbccc.txt

Versuch und Irrtum

Sollte ich es in einfache Anführungszeichen setzen? Ich denke das ist auch nutzlos

$ unzip hoge_bs.zip 'aaa\bbb\ccc.txt'
Archive:  hoge_bs.zip
caution: filename not matched:  aaa\bbb\ccc.txt

Wird der Pfad zum Zeitpunkt der Erweiterung tatsächlich in einen Schrägstrich umgewandelt? Ich habe es versucht, aber das ist auch nutzlos

$ unzip hoge_bs.zip 'aaa/bbb/ccc.txt'
Archive:  hoge_bs.zip
caution: filename not matched:  aaa/bbb/ccc.txt

Wie es funktioniert hat

Es hat gut funktioniert, als ich ihm zwei Schrägstriche gegeben habe

$ unzip hoge_bs.zip 'aaa\\bbb\\ccc.txt'
Archive:  hoge_bs.zip
warning:  hoge_bs.zip appears to use backslashes as path separators
  inflating: aaa/bbb/ccc.txt

Wenn ich es so zusammenstelle, fange ich an zu bedauern, dass dies gesunder Menschenverstand ist ...

Recommended Posts

[Entpacken] So dekomprimieren Sie nur beliebige Dateien von Dateien mit umgekehrten Verzeichnisbegrenzern in Zip-Dateien
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Extrahieren Sie nur den Dateinamen mit Ausnahme des Verzeichnisses im Verzeichnis
Entpacken Sie alle Zip-Dateien im aktuellen Verzeichnis
So listen Sie Dateien im angegebenen Verzeichnis auf (Suche nach mehreren Bedingungen / Unterverzeichnissen)
Wie Sie das aktuelle Verzeichnis in Python in Blender kennen
So laden Sie Dateien von Selenium of Python in Chrome herunter
So ändern Sie das statische Verzeichnis von der Standardeinstellung in Flask
So melden Sie sich automatisch wie 1Password von der CLI an
So gehen Sie mit dem Problem um, dass das aktuelle Verzeichnis verschoben wird, wenn Python von Atom ausgeführt wird
Entpacken Sie die Internet-Zip-Datei
Geben und meinen Sie die Einschränkungsoption in scipy.optimize.minimize
So stellen Sie fest, dass in Python3 ein Kreuzschlüssel eingegeben wurde
Verwendung von Sternchen (*) in Python. Vielleicht ist das alles? ..
Speichern Sie die Pydrive-Authentifizierungsdatei in einem anderen Verzeichnis als das Skript
[Ln] Das Einfügen des symbolischen Links des Verzeichnisses ist kompliziert
[Python] Was tun, wenn beim Importieren aus dem zu sys.path hinzugefügten Verzeichnis gegen PEP8 verstoßen wird?