默认选中将每个档案解压到单独的子目录中

默认选中将每个档案解压到单独的子目录中

我正在使用 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 方法之前,请先在测试目录中尝试一下,这样你就能看到它正在做你想要它做的事情。

相关内容