📌  相关文章
📜  ubuntu 拖放到桌面 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:48:07.790000             🧑  作者: Mango

Ubuntu 拖放到桌面 - Shell-Bash

在 Ubuntu 上使用 Shell-Bash,我们可以很容易地通过命令行来进行文件和文件夹的操作。但是,如果你想将文件拖放到桌面上,你可能会感到有些不知所措。本文将介绍如何在 Ubuntu 上使用 Shell-Bash 实现文件拖放到桌面的操作。

方法一:使用 xdg-user-dirs-update 命令
  1. 首先,我们需要安装 xdg-user-dirs,它是一种用户目录工具,用于在系统上创建和管理用户的目录和文件。

    sudo apt-get install xdg-user-dirs
    
  2. 然后,我们需要更新用户的桌面目录,以确保它在我们的系统上存在。

    xdg-user-dirs-update --set DESKTOP ~/Desktop
    

    该命令将在系统上创建“桌面”目录,并将其设置为 ~/Desktop

  3. 现在,我们需要创建一个可以接受文件拖放的脚本。在 ~/Desktop 目录下创建一个名为 test.sh 的空白文件。

    touch ~/Desktop/test.sh
    
  4. 使用 nano 或其他编辑器打开 test.sh 文件,并将以下内容复制粘贴到文件中:

    #!/bin/bash
    # Get the absolute path of the dropped file
    file=$(readlink -f "$1")
    # Do something with the file
    echo "$file was dropped on the desktop"
    

    该脚本将接受一个拖放的文件,并使用定义的命令对其执行操作。在这种情况下,我们只是打印出文件名。

  5. 接下来,我们需要为 test.sh 文件添加执行权限。

    chmod +x ~/Desktop/test.sh
    
  6. 现在,我们可以测试脚本是否正常工作。拖放一个文件到桌面上并运行脚本。

    ~/Desktop/test.sh $HOME/Desktop/example.txt
    

    如果脚本运行成功,它将会输出:

    /home/user/Desktop/example.txt was dropped on the desktop
    
  7. 最后,我们需要将我们的脚本与 gnome-terminal 或其他终端应用程序相关联,以便在拖放文件到桌面时自动运行它。

    打开 Nautilus(默认文件管理器)并前往 ~/.local/share/applications 目录。创建一个名为 test.desktop 的文件,编辑它,并将以下内容复制粘贴到文件中:

    [Desktop Entry]
    Name=Test
    Type=Application
    Exec=gnome-terminal -e "/bin/bash /home/user/Desktop/test.sh %f"
    Terminal=true
    Categories=Utility;
    

    Exec 属性中,我们使用 gnome-terminal 命令将终端应用程序与脚本相关联。%f 用于指定拖放的文件。

  8. 现在,我们可以测试我们的应用程序是否正常工作。在 Nautilus 中,右键单击文件并将其拖放到桌面上。选择我们创建的应用程序“Test”,它应该自动打开终端并运行我们的脚本。

方法二:使用 inotifywait 命令

如果你不想安装 xdg-user-dirs 工具,你可以使用 inotifywait 命令监视桌面目录,以便在文件拖放时拦截和处理事件。

  1. 在终端中,使用以下命令安装 inotify-tools

    sudo apt-get install inotify-tools
    
  2. 然后,我们需要创建一个名为 watch.sh 的脚本,并将以下内容复制粘贴到文件中:

    #!/bin/bash
    while true; do
        inotifywait -q -e create ~/Desktop
        file=$(ls -Art ~/Desktop | tail -n 1)
        # Do something with the file
        echo "$file was dropped on the desktop"
    done
    

    该脚本将持续监视桌面目录中的文件创建事件,并将最新创建的文件名保存到 file 变量中。然后,我们可以执行我们想要对该文件执行的操作。

  3. watch.sh 文件添加执行权限。

    chmod +x ~/Desktop/watch.sh
    
  4. 运行脚本以启动监视。

    ~/Desktop/watch.sh
    

    当窗口启动并等待事件发生时,将拖放一个文件到桌面上。如果一切正常,脚本将显示文件名并停止等待事件。

    example.txt was dropped on the desktop
    

    您可以按 Ctrl + C 终止脚本。

  5. 如果你想在拖放文件时自动执行脚本,你可以创建一个桌面文件并关联 watch.sh 。在 ~/.local/share/applications 目录中创建一个名为 watch.desktop 的文件,编辑它,并将以下内容复制粘贴到文件中:

    [Desktop Entry]
    Name=Watch
    Type=Application
    Exec=gnome-terminal -e "/bin/bash /home/user/Desktop/watch.sh"
    Terminal=true
    Categories=Utility;
    
  6. 在 Nautilus 中,右键单击一个文件并将其拖放到桌面上。选择我们创建的应用程序“Watch”,它应该自动打开终端并启动我们的监视脚本。

以上就是如何使用 Shell-Bash 实现文件拖放到桌面的操作的两种方法。无论你选择哪种方法,都可以使用这些技巧快速提高你的工作效率。