我们是否有任何实用程序(或)我们可以编写任何脚本,以便如果下载了任何 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 &
现在,下载文件夹中下载的指定类型的文件将得到相应的处理。