Как автоматически запустить команду после завершения загрузки?

Как автоматически запустить команду после завершения загрузки?

Мне нужен способ, который поможет мне автоматически запустить команду после завершения загрузки.

Я хочу создать каталог рядом с загруженным файлом автоматически после того, как я нажму на интегрированную кнопку загрузки из 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.rdfфайл профиля Firefox.

решение3

Firefox загружает файл под временным именем $f.part и, если загрузка завершена, переименовывает его в $f.

Таким образом, вы можете следить за изменениями в каталоге с помощью таких инструментов, как inotifywaitилиwatchmedo.

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

Связанный контент