将文件添加到文件夹时自动启动程序
我的笔记本电脑上有Lubuntu 14.04 LTS几周了。 我一直在努力定制操作系统等,以及安装我日常使用所需的一切。 我做的一件事就是编写一个C程序,该程序在运行时可以从Downloads文件夹中快速复制或移动任何文件到任何位置。 可以轻松添加新目的地。
无论如何,我这样做是因为我从我的下载文件夹中分散了我的文件,所以更改Firefox中的默认下载位置真的不是答案。 相反,我希望能够根据具体情况进行选择。 该程序工作正常,但是,我想将文件下载到Downloads文件夹时随时在终端中自动运行。
有几个解决方案:
选项1:无需安装其他软件:
您可以使用次要脚本来监视Downloads文件夹,就像watch
命令一样,但要确保它只在文件添加到目录时执行命令。 将下面的脚本复制到空文件中,设置要监视的文件夹的路径,以及将文件添加到目录时要运行的命令。 将其保存为watch.py
并为方便起见使其可执行(因此您不必使用语言前缀)。 将其添加到您的启动应用程序:
– 在Lubuntu:
首选项> LXSession的默认应用程序,然后选择“自动启动”
– 或在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])
选项2:使用inotify-tools:
inotify-tools
是一个工具,您可以使用(ao)来查看已定义的文件夹,并在将新文件添加到文件夹时执行(定义)操作。
-
安装
inotify-tools
sudo apt-get install inotify-tools
-
将下面的脚本粘贴到一个空文件中,设置要监视的文件夹(“/ path / to / your / downloadfolder”),定义它应该运行的命令(“command-to-run-your-application”)安全它作为
notifyscript.sh
,为方便起见使其可执行,并将其添加到启动应用程序:(首选项> LXSession的默认应用程序,然后选择“自动启动”。添加命令:/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
请注意,在这两种情况下,您的应用程序将在创建文件时调用,但尚未完全下载。 如果下载量很大,则可能需要一些时间。
编辑
此外,如果必须将新添加的文件用作添加文件时运行的命令的参数 ,请使用以下版本:
它使用的格式为:
所以“通常”。 作为一个例子,我离开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])
尝试在preference
firefox菜单的General
选项卡中选中“ 始终询问我在哪里保存文件 ”选项。
每当您要求下载文件时,Firefox都会询问您保存文件的位置,您将能够选择首选文件夹。