我在Linux上有一个zip压缩文件,每天加载约20个带有日期(格式为yyyymmdd)的文件名。 我需要提取选定一天的所有文件,所以我检查,如果他们是在存档带解压缩的Linux解压缩列表无法提取所有匹配的文件
unzip -l fileArchive.zip | grep 0910
和结果,我看到17个文件,这是我所期待的:
32471137 09-12- 21:07 TRANSACTIONS_0910.csv
181 09-13- 21:00 FILE1_D_0910.CSV
9345 09-13- 21:00 FILE2_D_0910.CSV
142 09-13- 21:00 FILE3_D_0910.CSV
6307637 09-13- 21:00 FILE4_D_0910.CSV
783975 09-13- 21:01 FILE5_D_0910.CSV
4812 09-13- 21:01 FILE6_D_0910.CSV
88306 09-13- 21:01 FILE7_D_0910.CSV
47 09-13- 21:01 G_TEXTE000_D_0910.CSV
510 09-13- 21:01 FILE9_D_0910.CSV
163646 09-13- 21:01 FILE10_D_0910.CSV
51 09-13- 21:02 FILE11_D_0910.CSV
158654 09-13- 21:02 FILE12_D_0910.CSV
31724 09-13- 21:02 FILE13_D_0910.CSV
269337 09-13- 21:02 FILE14_D_0910.CSV
89 09-13- 21:02 FILE15_D_0910.CSV
76 09-13- 21:03 FILE16_D_0910.CSV
70 09-13- 21:01 FILE17_D_0910.CSV
在接下来的步骤我想提取到位文件列表的提取使用带有屏蔽解压缩这些文件:
unzip fileArchive.zip *0910* -d /var/tmp/
,结果是只提取一个文件:
Archive: fileArchive.zip
inflating: /var/tmp/G_TEXTE000_D_0910.CSV
这肯定是错误的,因为当我对其他掩码执行相同的操作时,带掩码的unzip命令会提取之前由unzip -l列出的所有文件。 令人高兴的是我可以在列表给出确切名称解压所有这些文件:
unzip fileArchive.zip TRANSACTIONS_0910.csv FILE1_D_0910.CSV FILE2_D_0910.CSV ... FILE17_D_0910.CSV -d /var/tmp/
所以存档未损坏。简单地解压缩这一天0910使用面具失败。
你有什么想法可能是错误的? 问候,
编辑: 下面是完整的代码(文件名的片切割),它显示的是不带引号面膜适用于对称档案“SK”,而这一个“CZ”它不。
我解压用引号“CZ”文件 - 工作正常 变化目录并解压缩“SK”的文件不带引号 - 工作正常 变化目录,并试图解压“CZ”文件不带引号 - 只有一个文件是解压缩。
$ pwd
/root_path/cz/input_data/fileArchive
$ unzip fileArchive.zip '*0910*' -d /var/tmp/
Archive: fileArchive.zip
inflating: /var/tmp/CZ_C_BAL_D_0910.csv
inflating: /var/tmp/CZ_ERNAL_D_0910.CSV
inflating: /var/tmp/CZ_A2iMX_D_0910.CSV
inflating: /var/tmp/CZ_MENT_D_0910.CSV
inflating: /var/tmp/CZ_IER0_D_0910.CSV
inflating: /var/tmp/CZ_VIDU_D_0910.CSV
inflating: /var/tmp/CZ_ONNEL_D_0910.CSV
inflating: /var/tmp/CZ_ENT0_D_0910.CSV
inflating: /var/tmp/CZ_E000_D_0910.CSV
inflating: /var/tmp/CZ_IST0_D_0910.CSV
inflating: /var/tmp/CZ_STE_D_0910.CSV
inflating: /var/tmp/CZ_TLOG_D_0910.CSV
inflating: /var/tmp/CZ_ENTS_D_0910.CSV
inflating: /var/tmp/CZ_ERE0_D_0910.CSV
inflating: /var/tmp/CZ_VIDU_D_0910.CSV
inflating: /var/tmp/CZ_TEG_D_0910.CSV
inflating: /var/tmp/CZ_TEGY_D_0910.CSV
inflating: /var/tmp/CZ__ECH_D_0910.CSV
$ pwd
/root_path/cz/input_data/fileArchive
$ cd /root_path/sk/input_data/fileArchive
$ unzip fileArchive.zip *0910* -d /var/tmp/
Archive: fileArchive.zip
inflating: /var/tmp/SK_D_0910.csv
inflating: /var/tmp/SK_XTERNAL_D_0910.CSV
inflating: /var/tmp/SK_X_D_0910.CSV
inflating: /var/tmp/SK_MENT_D_0910.CSV
inflating: /var/tmp/SK_IER0_D_0910.CSV
inflating: /var/tmp/SK_VIDU_D_0910.CSV
inflating: /var/tmp/SK_ONNEL_D_0910.CSV
inflating: /var/tmp/SK_ENT0_D_0910.CSV
inflating: /var/tmp/SK_E000_D_0910.CSV
inflating: /var/tmp/SK_IST0_D_0910.CSV
inflating: /var/tmp/SK_STE_D_0910.CSV
inflating: /var/tmp/SK_TLOG_D_0910.CSV
inflating: /var/tmp/SK_ENTS_D_0910.CSV
inflating: /var/tmp/SK_ERE0_D_0910.CSV
inflating: /var/tmp/SK_VIDU_D_0910.CSV
inflating: /var/tmp/SK_TEG_D_0910.CSV
inflating: /var/tmp/SK_TEGY_D_0910.CSV
inflating: /var/tmp/SK__ECH_D_0910.CSV
$ cd /root_path/cz/input_data/fileArchive
$ unzip fileArchive.zip *0910* -d /var/tmp/
Archive: fileArchive.zip
replace /var/tmp/CZ_E000_D_0910.CSV? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
inflating: /var/tmp/CZ_E000_D_0910.CSV
这很尴尬! 我希望面具报价到两个档案相同的方式工作
+0
什么是'LS-HL/root_path/SK/input_data/fileArchive'的输出? –
+0
我为两个目录都做了:'ls -hl/root_path/sk/input_data/fileArchive' 返回'-rwxrwx --- + 1 jd74630 root 1.2G Nov 3 21:36 fileArchive.zip' for cz返回 ' rwxrwx --- + 1 jd74630 root 4.1G 11月3日21:36 fileArchive.zip' 有趣的是,现在解压缩蒙版工作_only_用引号 –
+0
在某些时候,你不小心将文件解压缩到'/ root_path/sk/input_data/fileArchive'。稍后,您将其移除。 –