2015-06-11 35 views
2

我正在製作一個腳本,允許我解壓縮給定的文件。我的問題是,我現在不知道如何將目錄切換到剛剛由解壓縮過程創建的目錄。 我試過這個命令,但它不工作:SITE_DIRECTORY="$(ls -dt */ | head -1)"unziping後更改目錄

任何想法如何獲取剛剛提取的目錄名稱?

編輯:現在我得到SITE_DIRECTORY=unzip $SITE_NAME | grep 'creating:' | head -1 | cut -d' ' -f5-

但一個新的問題出現:unzip命令不提取所有文件。 新想法?

回答

0

解決我的問題是下面的命令:

unzip $SITE_NAME >output.txt 
SITE_DIRECTORY=$(cat output.txt | grep -m1 'creating:' | cut -d' ' -f5-) 
rm output.txt 

由於去Evan @ Unzip File which directory was created

+0

仍然有問題。解壓縮不會提取所有文件。 –

+0

我使用最終的工作命令編輯瞭解決方案。 –

1

如果該目錄是已知的,你可以

unzip -j yourzip.zip -d /path/to/dir && cd /path/to/dir 

額外的信息從man pagej選項)

-j垃圾路徑。檔案的目錄結構不會被重新創建;所有文件都存放在提取目錄中(默認情況下,當前爲 )。

+0

我的zip壓縮包中已經包含了目錄。我不想在目錄中有目錄,我不知道目錄提取的名稱是什麼。 –

+0

編輯我的答案。 -j選項可能是缺失的拼圖。 – sitilge