![默认选中将每个档案解压到单独的子目录中](https://linux22.com/image/1187468/%E9%BB%98%E8%AE%A4%E9%80%89%E4%B8%AD%E5%B0%86%E6%AF%8F%E4%B8%AA%E6%A1%A3%E6%A1%88%E8%A7%A3%E5%8E%8B%E5%88%B0%E5%8D%95%E7%8B%AC%E7%9A%84%E5%AD%90%E7%9B%AE%E5%BD%95%E4%B8%AD.png)
我正在使用 kUbuntu v20.4,并且想要设置
默认情况下解压检查单独的子目录
动机:
我经常会在“下载”文件夹中解压一个 zip 文件,然后在其中解压出一堆文件,旁边还有许多其他下载的文件。
我希望默认位置是这个 zip 将被解压到新的文件夹或每个档案都解压到单独的文件夹中。
如果我手动检查的话,对我来说没问题,但如果我忘记了,那么文件就会乱七八糟,很难修复。因此,如果默认使用此功能或 GUI 可以记住上次配置(我认为这样好多了),这将非常有帮助。
默认选项是如何配置的?
答案1
unzip
有一个-d {dir2unxip}
没有通过设置自动执行此操作的方法。您必须使用该-d
选项提供一个目录。如果目录存在并且您没有强制执行,命令将要求覆盖。
您能做的最好的事情就是创建一个别名,将zip
其更改为,zip -d
以便您被告知提供一个目录。但这意味着您必须提供 zip 文件本身作为下一个参数,并且需要记住使用这个新功能。
alias myunzip="zip -d"
您需要输入...
myunzip 2 zipfile.zip
并在子目录中创建内容2
答案2
自动系统假设使用默认值解压到子目录中
您可以创建一个自动系统,假设您使用默认值解压缩,只需unzip filename.zip
使用以下 shellscript 并将其放在 之前的路径中unzip
,例如/usr/local/bin/unzip
。
您还应该运行source ~/.bashrc
以使当前 bash(终端窗口)知道本地解压缩脚本。
#!/bin/bash
if [ "$1" != "" ]
then
newdir=${1%.zip}
if test -s "$1" && [ "$newdir" != "$1" ]
then
if ! test -d "$newdir"
then
echo "creating $newdir and cd-ing to it and unzipping in it"
mkdir "$newdir"
curdir="$(pwd)"
cd "$newdir"
/usr/bin/unzip "../$1"
cd "$curdir"
else
echo "Cannot create new directory '$newdir'.
If you want to create a directory with that name and extract to it,
remove the current directory with that name, but check first
what it contains (maybe valuable data) !!!"
exit 1
fi
else
echo "Not a zipfile: '$1'"
exit 1
fi
else
echo "Usage: ${0##*/} <zipfile>"
exit 1
fi
这假设您对带有 zipfile 名称(减号.zip
)的子目录感到满意。
在有真实数据的地方执行 shellscript 方法之前,请先在测试目录中尝试一下,这样你就能看到它正在做你想要它做的事情。