1
我有一個文件結構如下:解壓文件夾父目錄保持壓縮文件夾名稱
- 檔案/
- 拉鍊/
- zipfolder1.zip
- zipfolder2.zip
- zipfolder3.zip
... - zipfolderN.zip
- 拉鍊/
我有一個解壓的文件夾父目錄「檔案」的腳本,但它是解壓文件夾的內容爲「檔案」目錄。我需要將壓縮文件夾保留爲「存檔」目錄下的文件夾。所得到的文件結構應該是這樣的:
- 檔案/
- 拉鍊/
- zipfolder1.zip
- zipfolder2.zip
...
- zipfolder1/
- 內容...
- zipfolder2/
- 內容...
- ...
- 拉鍊/
我目前使用下列內容:
find /home/username/archives/zips/*.zip -type f | xargs -i unzip -d ../ -q '{}'
如何一世修改此行以保留原始文件夾名稱?這與使用../*
一樣簡單嗎?
終端打開第二行,並且當我使用'等待輸入的解壓縮-q -d ../"$(basename「{ }「.zip)」「{}」';'我明白'basename'部分正在做什麼,但只能在不刪除''\;'的情況下才能工作。這給了我'../ home/username/archives/zips/zipfolder1.zip'而不是'../ zipfolder1'的路徑。看起來'basename'是單獨工作的,但不包含在$()中。 – Matt
@Matt似乎有一個錯字。你可以嘗試上面的編輯嗎? – devnull
這是工作。我將使用'-execdir'而不是'-exec',因爲腳本不是從「zips」目錄運行的,'../'可能會被解釋爲錯誤。 – Matt