Zip

將存檔解壓縮到單個文件夾

  • April 11, 2018

也許這是第一世界問題的頂峰,但經過多年的焦慮,我只需要播出這一點。

假設您已下載funtool.zip到您的~/Downloads文件夾中。您有兩種選擇,每種都有兩種可能的結果,具體取決於存檔是否具有正確的根文件夾。

unzip funtool. 可能的結果:

  • ~/Downloads/funtool/(files)- 好的
  • ~/Downloads/(lots of files)——啊!下載文件夾亂七八糟

unzip funtool -d funtool. 可能的結果:

  • ~/Downloads/funtool/funtool/(files)– 雙文件夾。惱人的!
  • ~/Downloads/funtool/(files)- 好的

我已經看到一些 GUI 解壓縮器為此內置了智能,但我是 CLI 專家。我的解決方案是檢查根文件夾unzip -t funtool並採取相應措施。但多年後,我已經擁有了。

是否有腳本或其他東西可以自動執行此操作,甚至對於rar文件,甚至可能7z?至少這是一件tar似乎每次都正確的事情,也許是因為良好的慣例。

作為各種存檔格式的 CLI 前端,unp使用一個命令解壓縮(幾乎)所有內容

它聲稱有以下選擇:

  -u Special helper mode.
     For most archive types:
     - create directory <filename without suffix>/
     - extract contents there
     For Debian/Ubuntu packages:
     - extract data.tar.gz after each operation in local directory
     - extract control.tar.gz into control/<package_version_arch>/
  -U Smart mode, acts like -u (see above) if archive contains multiple
     elements but if there is only one file/directory element then it's stored 
     in the current directory.

聽起來很接近您正在尋找的行為。

但是,-U如果它是一個帶有單個文件的 ZIP 文件,該文件與 zipfile 本身的名稱沒有任何關係,則該模式仍然會亂扔單個文件。

引用自:https://unix.stackexchange.com/questions/436984