我有一个名为ISAS01_102013 (issue 296 and 297).zip
的zip文件夹
当我解压缩目录时,它创建了一个名为ISAS01_102013 (issue 296 and 297)
的目录。
尝试执行cd ISAS01_102013 (issue 296 and 297)
时,由于文件夹名称中有空格,我收到错误。如何以ISAS01_102013 (issue 296 and 297)
以外的文件夹名称导出zip数据,例如名为/data
的文件夹。收到的文件夹"ISAS01_102013 (issue 296 and 297).zip"
始终是动态的。
[编辑]
代码:
#zip_research is the folder where we place the zip datas got
#i.e. 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
错误讯息:
error: cd: RSIS01_122014 No such file or directory exists
答案 0 :(得分:2)
我不确定您使用什么程序来解压缩文件,但是您应该看看是否有命令行选项以某种方式命名提取的数据。例如:
unzip package.zip -d data;
cd data;
但是,如果您在命令中转义空格,则文件名中包含的空格没有问题
如果您有一个名为ISAS01_102013 (issue 296 and 297)
的目录,则
您可以使用以下命令进入该目录:
cd ISAS01_102013\ \(issue\ 296\ and\ 297\)/
或更简单地,将目录名称包装在引号中:
cd "ISAS01_102013 (issue 296 and 297)"/
答案 1 :(得分:0)
最初,我在这个问题上尝试了awk
sed
cut
,但我得到了同样的错误。
所以,我在评论中吃了我的话,问题应该采用不同的方式来解决。
我的解决方案:(当然问题有很多解决方案)
#!/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$'`";