我对使用终端还很陌生,想知道如何将一个装满 .zip 文件的文件夹放入与其提取的 .zip 文件同名的子文件夹中。
到目前为止,我认为unzip '*.zip' -d
可以将所有 .zip 文件提取到一个目录中,但我不确定如何为-d
每个 .zip 文件指向/创建目标文件夹。
或者,Nautilus Action Config Tool 似乎可以模仿 7zip Extract To 命令,但这似乎有点令人生畏。
答案1
使用Nautilus Action Config Tool
选项并调用我的script zippy.sh
:
#!/bin/bash
# Unzipping and organizing files from nautilus
m=0 # counter
while [ -n "$1" ] && [ -f "$1" ]
do
if [[ "$1" =~ \.zip$ ]]
then
dir="$1"
dir=${dir%.*}
unzip "$1" -d "$dir"
m=$(($m + 1))
shift
fi
done
zenity --info --text="Operations finished and "$m" zip files unzipped"
exit 0
将脚本放在这里:
~/.local/share/nautilus/scripts/
使其可执行
chmod +x ~/.local/share/nautilus/scripts/zippy.sh
解释:
-n
并-f
分别检查文件号是否不为零和是否为文件=~ \.zip$
确保它是一个 zip 文件${dir%.*}
截掉zip
文件名的一部分m=$(($m + 1))
计算已处理的 zip 文件数量。shift
翻阅文件zenity
显示消息框以指示操作结束
答案2
我编辑了一个我找到的脚本,将文件名转换为文件夹名并提取到创建的文件夹中。
修订:在您的目录中创建一个文件:
#!/bin/bash
find . -type f ! -name "*exto*" | while read file;
do
f=$(basename "$file")
f1=${f%.zip}
mkdir "$f1"
unzip "$f" -d "$f1"
done
在终端:
chmod +x exto
./exto
答案3
您也可以直接下载适用于 Linux 的 7Zip 版本。https://sourceforge.net/projects/p7zip/files/ 它被称为 p7zip
https://www.ibm.com/developerworks/community/blogs/6e6f6d1b-95c3-46df-8a26-b7efd8ee4b57/entry/how_to_use_7zip_on_linux_command_line144?lang=en 这也提供了非常详细的安装和使用指南