
Мне нужен способ, который поможет мне автоматически запустить команду после завершения загрузки.
Я хочу создать каталог рядом с загруженным файлом автоматически после того, как я нажму на интегрированную кнопку загрузки из 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
- Добавить тип MIME
neverAsk.openFile
вabout:config
(можно добавить*/*
для всех) - Создайте исполняемый скрипт, который:
- берет путь к файлу из списка аргументов (первый аргумент)
- перемещает его в целевое местоположение (в которое он был загружен
tmp
) - выполняет любые команды, которые вы хотите
- Сообщите Firefox, чтобы он открывал этот тип файла с помощью вашего скрипта
Последнее легко сделать в , about:preferences
но немного сложнее, если вы хотите вручную добавить записи в mimeTypes.rdf
файл профиля Firefox.
решение3
Firefox загружает файл под временным именем $f.part и, если загрузка завершена, переименовывает его в $f.
Таким образом, вы можете следить за изменениями в каталоге с помощью таких инструментов, как inotifywait
илиwatchmedo.
inotifywait -m .
...
./ MOVED_FROM file.zip.part
./ MOVED_TO file.zip