Zip
將存檔解壓縮到單個文件夾
也許這是第一世界問題的頂峰,但經過多年的焦慮,我只需要播出這一點。
假設您已下載
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 本身的名稱沒有任何關係,則該模式仍然會亂扔單個文件。