下载后立即解压文件

下载后立即解压文件

我们是否有任何实用程序(或)我们可以编写任何脚本,以便如果下载了任何 zip 文件,则立即解压缩并删除该 zip 文件。

答案1

选项 1:下载并解压脚本

您可以创建一个非常简单的脚本来执行此操作。您可以使用以下内容创建脚本dlext(“Download-Extract”的缩写):

#!/bin/bash

wget "$1"

filename="${1##*/}"

if [[ -f "./$filename" ]]
then
  case "$filename" in
    *.zip)
      echo "Zip file detected in ./$filename"
      unzip "./$filename"
      rm "./$filename"
      ;;
    *)
      echo "Unknown file format in ./$filename"
      ;;
  esac
else
  echo "File not written to disk: ./$filename"
fi

使脚本可执行,并将其放入您的路径中。此外,解压缩文件需要unzip安装包(使用 安装sudo apt install unzip)。

该脚本运行于

dlext https://path.to/zipfile.zip

然后它将获取文件(使用wget),检查文件是否已写入磁盘(-statement if),如果为真,则根据文件扩展名运行提取命令(-statement case)。

我特意case为文件格式做了一个声明,这样您也可以轻松添加除了 zip 之外的其他文件格式。

选项 2:监控下载文件夹脚本

如果您想要监视特定文件夹中的 zip 文件(或其他文件),并在新文件添加到该文件夹​​时运行命令,请创建脚本dlmon

#!/bin/bash

dlfolder="/path/to/downloads"

while inotifywait -e close_write "$dlfolder"
do
  # Create a for-loop for each file type you want to process
  for f in "$dlfolder"*.zip
  do
    [[ -f "$f" ]] && unzip "$f" -d "$dlfolder" && rm "$f"
  done
done 

该脚本可以在后台运行,也可以在启动时使用:

/path/to/script/dlmon &

现在,下载文件夹中下载的指定类型的文件将得到相应的处理。

相关内容