C'est peut-être évident, mais je n'ai pas trouvé la réponse même si je l'ai recherchée dans le sentiment, alors je l'écrirai dans le but de la rappeler.
Lorsque vous souhaitez décompresser uniquement un fichier spécifique avec la commande unzip
Si vous avez un fichier zip comme celui ci-dessous
hoge.zip
$ zipinfo -1 hoge.zip
aaa/bbb/ccc.txt
ddd/eee/fff.jpg
ggg/hhh/iii.log
Ceci peut être réalisé avec unzip {zip à décompresser} {chemin du fichier que vous voulez extraire}.
$ unzip hoge.zip aaa/bbb/ccc.txt
Mais si le délimiteur de répertoire dans le fichier zip était une barre oblique inverse
hoge_bs.zip
$ zipinfo -1 hoge_bs.zip
aaa\bbb\ccc.txt
ddd\eee\fff.jpg
ggg\hhh\iii.log
Si vous entrez une commande avec la même tonalité, une erreur se produira.
$ unzip hoge_bs.zip aaa\bbb\ccc.txt
Archive: hoge_bs.zip
caution: filename not matched: aaabbbccc.txt
Dois-je le mettre entre guillemets simples? Je pense que c'est aussi inutile
$ unzip hoge_bs.zip 'aaa\bbb\ccc.txt'
Archive: hoge_bs.zip
caution: filename not matched: aaa\bbb\ccc.txt
Le chemin est-il réellement converti en barre oblique au moment de l'expansion? Je l'ai essayé, mais c'est aussi inutile
$ unzip hoge_bs.zip 'aaa/bbb/ccc.txt'
Archive: hoge_bs.zip
caution: filename not matched: aaa/bbb/ccc.txt
Cela a bien fonctionné quand je lui ai donné deux barres obliques dans le dos
$ 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
Quand je fais ça comme ça, je commence à regretter que ce soit du bon sens ...