
我有一個 zip 檔案。該unzip -l myarchive.zip
命令給出了以下列表:
top/subtop/files/1.txt
top/subtop/files2/2.txt
etc
根資料夾是所有文件的頂部/子頂部。如何在沒有兩個頂部/子頂部資料夾的情況下提取這些檔案?
例如,當我位於 /home/myuser/public_html 目錄中時,files/1.txt
應該files2/2.txt
直接提取到該目錄。
我嘗試過unzip myarchive.zip top/subtop/*
,但它還是創建了頂級/子頂級目錄。
答案1
不幸的是,你不能。您唯一真正的選擇是在提取它們後移動它們。
答案2
您可能想嘗試該tar
命令,它有一個--strip-components
功能並且可以對 zip 檔案進行操作。
答案3
以JMeter為例:
# It's a good idea to set JMETER_HOME.
export JMETER_HOME=/usr/local/jmeter
unzip -q /tmp/apache-jmeter-5.4.1.zip -d $JMETER_HOME
for a in `ls -d -1 $JMETER_HOME/*`; do mv $a/* $JMETER_HOME; rmdir $a; done
簡單便攜。
答案4
提取所有壓縮檔案後,我使用此命令將所有檔案複製到我的根檔案目錄,效果很好。節省大量時間:
for /r %f in (00P*) do @copy "%f"
(http://mlichtenberg.wordpress.com/2011/01/25/command-line-fun-how-to-flatten-a-folder-hierarchy/)