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.
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
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
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