Directory
對於所有 zip,並在工作目錄中解壓縮並保持其結構
用這個命令
find . -name '*.zip' -exec unzip '{}' ';'
我們在 . (目錄),然後將它們解壓縮到目前工作目錄中, 但是, 結構消失了。
/backUp/pic1/1-1.zip /backUp/pic1/1-2.zip /backUp/pic2/2-1.zip /backUp/pic2/2-2.zip /backUp/pic3/3-1.zip /backUp/pic3/3-2.zip /backUp/pic3/3-3.zip Current command result: /new/1-1 /new/1-2 /new/2-1 /new/2-2 /new/3-1 /new/3-2 /new/3-3 desired result /new/pic1/1-1 /new/pic1/1-2 /new/pic2/2-1 /new/pic2/2-2 /new/pic3/3-1 /new/pic3/3-2 /new/pic3/3-3
在這裡問,但程式碼不起作用 dirname 和 basename 應該在這個命令中是什麼?
您可以使用
find
with-execdir
參數而不是-exec
.
-execdir
將在找到文件的目錄中執行命令,而不是在您目前的工作目錄中例子:
find . -name '*.zip' -execdir unzip {} \;
雖然這並不完全符合您的要求,但您可以添加一些步驟來獲得所需的結果:
mkdir new cp -a backUP/* new/ #run unzip operation cd new find . -name '*.zip' -execdir unzip {} \; #remove all .zip files find . -name '*.zip' -exec rm {} \;