我的笔记本电脑上安装了 Lubuntu 14.04 LTS 已经几个星期了。我一直在对操作系统进行大量自定义,并安装日常使用所需的一切。我做的一件事是编写一个 C 程序,运行时,它可以快速将任何文件从下载文件夹复制或移动到任何位置。可以轻松添加新目的地。
无论如何,我这样做是因为我将文件从“下载”文件夹分散到各处,因此更改 Firefox 中的默认下载位置实际上并不是答案。相反,我希望能够根据具体情况进行选择。该程序运行良好,但是,我想将其设置为在文件下载到“下载”文件夹时在终端中自动运行。
答案1
有几种解决方案:
选项 1:无需安装其他软件:
你可以使用一个小脚本来监视下载文件夹,就像命令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
请注意,在这两种情况下,您的应用程序将在文件创建时被调用,但尚未完全下载。如果下载很大,则可能需要一些时间。
编辑
此外,如果新添加的文件必须用作争论对于添加文件时运行的命令,请使用以下版本:
它使用以下格式:
<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])
答案2
尝试检查“总是询问我文件保存在哪里“ firefox 菜单General
选项卡中的选项。preference
每次您要求下载文件时,Firefox 都会询问您将文件保存在哪里,然后您可以选择喜欢的文件夹。