AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 912687
Accepted
Programster
Programster
Asked: 2017-05-08 00:57:23 +0800 CST2017-05-08 00:57:23 +0800 CST 2017-05-08 00:57:23 +0800 CST

Nautilus - 不支持硬链接?

  • 772

我终于开始研究和理解硬链接,以检查我是否理解了基础知识,我已经设法跳过了很多。在意识到它们有多么出色之后,我想知道为什么 Ubuntu 的默认文件管理器 nautilus 没有更好地支持它们。

目前,创建文件链接只有一个选项,它将创建一个“软”链接。

在此处输入图像描述

这样做的问题是,一旦您移动或重命名原始文件,它们就会中断。

问题

有没有办法让 nautilus 创建硬链接,或者某种插件/脚本/配置/调整我可以在右键菜单或键盘快捷键中添加选项,以创建硬链接文件?

nautilus
  • 2 2 个回答
  • 1525 Views

2 个回答

  • Voted
  1. Best Answer
    pa4080
    2017-05-08T06:07:48+08:002017-05-08T06:07:48+08:00

    显然,这个选项在几年前就被有意削减了。从主题从 bugzilla.gnome.org创建硬链接:

    我们的用户几乎没有一个人知道硬链接的概念,那么我们为什么要混淆他甚至冒数据丢失的风险呢?您可以使用 nautilus-open-terminal 并手动创建硬链接。


    好消息是您有两种选择来创建此功能:

    • 通过使用 Nautilus Actions 或
    • 通过使用 Nautilus 脚本


    解决方案 1:使用 Nautilus 操作

    1.首先安装包nautilus-actions:

    sudo apt update
    sudo apt install nautilus-actions
    

    或者使用 Ubuntu 软件:

    安装 nautilus-actions

    2.运行程序:

    运行鹦鹉螺行动

    3.转到“首选项”并取消选中“创建根 Nautilus 操作菜单”:

    nautilus-actions 首选项

    勾选此选项时,上下文菜单中将有子菜单等。

    4.单击定义新操作按钮并在操作选项卡中填写数据。As Context Label you can use Make Hard Link, also tick only the option Display item in selection context menu- in other words display this item when a file is selected.

    定义新动作 - 动作

    5.转到命令选项卡并填写参数:

    • 简介:

      • 标签:Default profile- 如果没有任何自定义配置文件。
    • 命令:

      • 路径:/bin/ln- 这是可执行文件(或命令)的路径。
      • 参数:%f 'Hard Link to %b'- 单击标签按钮以获取更多信息。
      • 工作目录:%d- 表示当前目录。

    定义新动作 - 命令

    6.因为目录硬链接以多种方式破坏文件系统,我们必须禁用这种可能性。转到Mimetypes选项卡并添加新规则:

    • 模仿类型过滤器:inode/directory,
    • 选择了Must not match any of选项。

    定义新动作 - Mimetypes

    7. 记录Make Hard Link动作:

    定义新动作 - 记录

    8.运行 Nautilus 并使用上下文菜单中的Make Hard Link操作:

    在此处输入图像描述


    此外,如果您想备份您的设置:

    • 该文件$HOME/.config/nautilus-actions/nautilus-actions.conf包含 Nautilus 操作首选项。
    • 并且新操作是文件夹中的位置:$HOME/.local/share/file-manager/actions/.


    解决方案 2:使用 Nautilus 脚本

    通过将脚本放入$HOME/.local/share/nautilus/scripts/. 该脚本可能如下所示:

    $ cat "$HOME/.local/share/nautilus/scripts/Make Hard Link"
    
    #!/bin/bash
    if [[ -f "$1" ]]
    then
            ln "$1" "Hard Link to $1"
    fi
    

    我们可以创建这个脚本并通过以下命令赋予它可执行权限:

    ScriptNAME="$HOME/.local/share/nautilus/scripts/Make Hard Link" && \
    printf '#!/bin/bash\nif [[ -f \"$1\" ]]\nthen\n\tln \"$1\" \"Hard Link to $1\"\nfi\n' |\
    tee "$ScriptNAME" && chmod +x "$ScriptNAME"
    

    结果将是:

    在此处输入图像描述

    参考:

    • 如何让 Nautilus 脚本工作 Nautilus?
    • 如何自定义 Nautilus 中的上下文菜单?
    • 检查传递的参数是否是 BASH 中的文件或目录
    • 8
  2. f0nzie
    2020-11-02T07:05:07+08:002020-11-02T07:05:07+08:00

    受此处答案的启发,我编写了一个 Nautilus/Nemo 脚本,该脚本从多个文件选择中创建硬链接。

    #!/bin/bash
    # make hard links for multiple file selection
    # be careful of not moving the hard link to a different file system
    HARDLINK_ICON=${HOME}/.local/share/icons/mine/folder-green-activities-icon.png
    for arg 
    do
        # make a hard link of the selected file
        if [[ -f "$arg" ]] 
        then
            HARDLINK_NAME="Hard Link to $arg"
            ln "$arg" "${HARDLINK_NAME}"
            gio set -t string "${HARDLINK_NAME}" metadata::custom-icon file:///${HARDLINK_ICON}
        fi
    done
    
    1. 确保将图标添加到本地主文件夹。就像是${HOME}/.local/share/icons/mine/folder-green-activities-icon.png
    2. 注意不要将硬链接移动到不同的文件系统;不起作用。如果未显示该图标,则很可能是将硬链接剪切并粘贴到不同的文件系统。
    • 2

相关问题

  • Nautilus 自动以 root 身份浏览

  • 在 nautilus 中刷新缩略图

  • 如何在 Nautilus 中管理保存的完整网页及其目录(例如 n.html 和 n_files)

  • 如何让 Nautilus windows 坚持拖放?[关闭]

  • Nautilus 中的 FTP 连接问题 - 一段时间后似乎超时

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何运行 .sh 脚本?

    • 16 个回答
  • Marko Smith

    如何安装 .tar.gz(或 .tar.bz2)文件?

    • 14 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Martin Hope
    Flimm 如何在没有 sudo 的情况下使用 docker? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve