如何在下载完成后自动运行命令?

如何在下载完成后自动运行命令?

我需要一种方法来帮助我在下载完成后自动运行命令。

我想在点击 Firefox 集成的下载按钮后自动在下载的文件旁边创建一个目录。我希望所有这些都是自动的。

答案1

如果你可以在 Firefox 之外下载文件,则可以使用

filetodownload=file-to-download.ext
wget http://www.example.org/"$filetodownload" -O "$filetodownload"
#"I want to create a directory beside the downloaded file automatically"
#You didn't specify a dir name
mkdir "$filetodownload"

否则,您必须监视文件的下载进度,并在下载完成后将目录设为“下载文件旁边”。以下方法对我有用(但我无法创建与文件同名的目录)。但它会查看所有文件,包括隐藏文件。根据需要进行修改。

#! /bin/bash
while [ 1 ]
 do
  for files in $(find . -maxdepth 1 -mmin -1 -type f)
   do
    testbefore=$(ls -l $files | awk '{print $5$6$7$8$9}')
    sleep 2
    testafter=$(ls -l $files | awk '{print $5$6$7$8$9}')
    if [ $testbefore = $testafter ]
     then
#     echo $testbefore
     mkdir $(basename "$files")_
    fi
   sleep 5
  done
 done

答案2

  1. 添加 mime 类型(可以为所有类型neverAsk.openFile添加)about:config*/*
  2. 创建一个可执行脚本:
    • 从参数列表(第一个参数)中获取文件路径
    • 将其移动到目标位置(因为它已被下载到tmp
    • 运行你想要的任何命令
  3. 告诉 Firefox 使用你的脚本打开此文件类型

最后一个很容易做到,about:preferences但如果您想手动将记录添加到mimeTypes.rdfFirefox 的配置文件中的文件,则会稍微困难一些。

答案3

Firefox 以临时名称 $f.part 下载文件,如果下载完成则将其重命名为 $f。

因此,您可以使用以下工具来监视目录更改inotifywait关注美多

inotifywait -m .
...
./ MOVED_FROM file.zip.part
./ MOVED_TO file.zip

相关内容