У меня есть Lubuntu 14.04 LTS на моем ноутбуке в течение нескольких недель теперь. Я работал над настройкой ОС и такой вполне немного, а также установка всего, в чем я нуждаюсь для ежедневного использования. Одна вещь, которую я сделал, записать программу C, которая, когда выполнено, предлагает быстро копировать или перемещать любой файл в любое местоположение от папки Downloads. Новые места назначения могут быть легко добавлены.
Так или иначе я сделал это, потому что я рассеиваю свои файлы повсеместно от моей папки Downloads, таким образом изменение местоположения загрузки по умолчанию в Firefox действительно не является ответом. Вместо этого я хочу смочь выбрать на индивидуальной основе. Программа хорошо работает, однако, я хочу установить выполненный на автоматически в терминале каждый раз, когда файл загружается на папку Downloads.
Существует несколько решений:
Можно использовать незначительный сценарий для слежения за папкой Downloads, как watch
команда делает, но удостоверяется, что только выполняет команду, когда файл добавляется к каталогу. Скопируйте сценарий ниже в пустой файл, установите путь к папке для наблюдения, и команда, чтобы работать, если файл добавляется к каталогу. Сохраните его как watch.py
и сделайте это исполняемым файлом по причинам удобства (таким образом, Вы не должны будете использовать префикс языка). Добавьте его к своим приложениям запуска:
- в Lubuntu:
Предпочтения> приложения По умолчанию для LXSession, затем выберите "Autostart"
- или в Ubuntu:
Параметры настройки системы> Клавиатура> Ярлыки> Пользовательские Ярлыки
Добавление команды для запуска сценария на входе в систему:
/path/to/watch.py
Сценарий:
#!/usr/bin/env python
import subprocess
import time
folder = "/path/to/folder/to/watch"
command_to_run = "command_to_run"
def get_drlist():
return subprocess.check_output(["ls", folder]).decode('utf-8').strip().split("\n")
while True:
drlist1 = get_drlist()
time.sleep(2)
drlist2 = get_drlist()
if len(drlist2) > len(drlist1):
subprocess.Popen(["/bin/bash", "-c", command_to_run])
inotify-tools
инструмент, который можно использовать (a.o). наблюдать определенную папку и принять (определенные) меры, если новый файл добавляется к папке.
Установка inotify-tools
sudo apt-get install inotify-tools
Вставьте сценарий ниже в пустом файле, установите папку, чтобы смотреть ("/path/to/your/downloadfolder"), определить команду, это должно выполнить ("command-to-run-your-application") сейф это как notifyscript.sh
, сделайте это исполняемым файлом по причинам удобства и добавьте его к своим приложениям запуска: (Предпочтения> приложения По умолчанию для LXSession, затем выберите "Autostart". Добавьте команду:
/path/to/notifyscript.sh
Сценарий:
#!/bin/bash
while true
do
fileName=$(inotifywait -r -e create /path/to/your/downloadfolder | sed -r 's/^.*CREATE(,ISDIR)*\s+(.*)$/\2/g')
command-to-run-your-application
done
Обратите внимание, что в обоих случаях Ваше приложение назовут в данный момент, файл создается, но еще полностью загружается. Если загрузка является большой, она может занять время.
Кроме того, если недавно добавленный файл должен использоваться в качестве аргумента в пользу команды, Вы работаете, когда файл добавляется, используйте версию ниже:
Это использует формат:
<application> <file>
так "обычное". Как пример, я уехал gedit
, таким образом, сценарий будет (попробовать к), открывают недавно добавленный файл с gedit.
#!/usr/bin/env python
import subprocess
import time
folder = "/path/to/folder/to/watch"
application = "gedit"
def get_drlist():
return subprocess.check_output(["ls", folder]).decode('utf-8').strip().split("\n")
while True:
drlist1 = get_drlist()
time.sleep(2)
drlist2 = get_drlist()
for file in [f for f in drlist2 if not f in drlist1]:
command = application+" '"+folder+"/"+file+"'"
subprocess.Popen(["/bin/bash", "-c", command])
Попытайтесь проверить" , Всегда спрашивают меня, где сохранить файлы " опция в General
вкладка preference
меню Firefox.
Каждый раз, когда Вы просите загружать файл, Firefox спросит Вас, где сохранить файл, и Вы будете в состоянии выбрать свою предпочтительную папку.