Aide du langage de script shell dans la commande de décompression

J’ai un dossier zip nommé ISAS01_102013 (issue 296 and 297).zip .
Lorsque j’ai décompressé le répertoire, il a créé un répertoire nommé ISAS01_102013 (issue 296 and 297) .

Lorsqu’on a essayé de faire cd ISAS01_102013 (issue 296 and 297) , une erreur est cd ISAS01_102013 (issue 296 and 297) raison de l’espace cd ISAS01_102013 (issue 296 and 297) dans le nom du dossier. Comment exporter les données zip dans un nom de dossier autre que ISAS01_102013 (issue 296 and 297) par exemple un dossier nommé /data . Le dossier reçu "ISAS01_102013 (issue 296 and 297).zip" est toujours dynamic.


[MODIFIER]

Le code:

 #zip_research is the folder where we place the zip datas got #ie RSIS01_122014 (Issue 238 to 249).zip, ISAS03_072014 (Issue 19).zip etc cd zip_research unzip -o *.zip #Considering it has only one unzipped folder for dir in * do cd $dir done 

Message d’erreur:

 error: cd: RSIS01_122014 No such file or directory exists 

Je ne sais pas quel programme vous utilisez pour décompresser un fichier, mais vous devriez voir s’il existe une option de ligne de commande pour nommer les données extraites d’une certaine manière. Par exemple:

 unzip package.zip -d data; cd data; 

Toutefois, les espaces contenus dans un nom de fichier ne posent aucun problème si vous échappez aux espaces de votre commande.
Si vous avez un répertoire nommé ISAS01_102013 (issue 296 and 297) ,
vous pouvez entrer dans ce répertoire en utilisant la commande suivante:
cd ISAS01_102013\ \(issue\ 296\ and\ 297\)/

ou plus simplement, enroulez le nom du répertoire entre guillemets:

 cd "ISAS01_102013 (issue 296 and 297)"/ 

A l’origine, j’ai essayé de résoudre ce problème, mais j’ai eu la même erreur. Donc, je mange mes mots dans le commentaire, le problème devrait utiliser une façon différente de résoudre.

Ma solution: (bien sûr le problème a beaucoup de solutions)

 #!/bin/bash # change directory to zip_research cd zip_research # grep zip file in the directory line by line while read line; do unzip -o "$line"; done <<< "`ls|grep -G '.zip$'`";