Directory
解壓時如何強制 unzip / zip 不創建子目錄?
根據 zip 文件的創建方式,有時會直接提取所有文件,有時會將文件提取到子目錄中。
如果後者為真,我如何強制
unzip
命令“忽略”該第一級目錄?例子:
cd /tmp wget http://omeka.org/files/omeka-1.5.1.zip mkdir omeka unzip omeka-1.5.1.zip -d omeka/ cd omeka/ ll
我得到的是
/tmp/omeka/omeka-1.5.1/
:total 12 drwxr-xr-x 3 root root 4096 2012-05-08 18:44 ./ drwxrwxrwt 6 root root 4096 2012-05-08 18:44 ../ drwxr-xr-x 5 root root 4096 2012-04-20 14:54 omeka-1.5.1/
我想要的是提取到的文件
/tmp/omeka/
,(上一級,目錄結構中不包含版本號)/tmp/omeka/(files)
我知道我可以使用
-j
“垃圾路徑”選項,但我想保留子目錄結構,而不是頂級目錄結構。我怎樣才能做到這一點?
使用FUSE文件系統,該系統允許您瀏覽諸如目錄之類的檔案,例如AVFS。用於
cp
將文件解壓縮到您選擇的目錄。mountavfs cp -Rp ~/.avfs/tmp/omeka-1.5.1.zip\#/omeka-1.5.1 omeka
由於我們假設存檔中有一個頂級目錄,因此您可以將其縮短為
cp -Rp ~/.avfs/tmp/omeka-1.5.1.zip\#/* omeka
如果您的 zip 文件不包含目錄結構或者您不需要保留它,您可以使用以下命令:
cd /tmp wget http://omeka.org/files/omeka-1.5.1.zip unzip -j omeka-1.5.1.zip -d omeka cd omeka ll