web-dev-qa-db-ja.com

Nautilus-ハードリンクのサポートなし

私はついに ハードリンクの研究と理解 に行き着きました。確認するための探求において、私は基本を理解しました。それらがどれほど素晴らしいかを理解した後、Ubuntuのデフォルトのファイルマネージャーであるnautilusでそれらのサポートが改善されないのはなぜかと思います。

現時点では、ファイルへのリンクを作成するためのオプションは1つしかなく、「ソフト」リンクが作成されます。

enter image description here

これに関する問題は、元のファイルを移動または名前を変更するとすぐに破損することです。

質問

Nautilusにハードリンクを作成させる方法、または何らかのアドオン/スクリプト/設定/調整を行う方法はありますか?ファイル?

2
Programster

どうやらこのオプションは数年前に意図的にカットされたようです。トピックから ハードリンクの作成 bugzilla.gnome.orgから:

ハードリンクの概念を知っているユーザーはほとんどいないので、なぜユーザーを混乱させ、データ損失のリスクを冒すべきなのでしょうか? nautilus-open-terminalを使用して、手動でハードリンクを作成できます。


良いニュースは、パッケージ Nautilus Actions を使用してこのオプションを作成できることです。

1。最初にパッケージnautilus-actionsをインストールします。

Sudo apt update
Sudo apt install nautilus-actions

または、Ubuntuソフトウェアを使用します。

install nautilus-actions

2。プログラムを実行します。

run nautilus-actions

[設定]に移動し、[ルートNautilusアクションメニューの作成]をオフにします。

nautilus-actions Preferences

このオプションを選択すると、コンテキストメニューにサブメニューなどが表示されます。

4。新しいアクションの定義ボタンをクリックして、アクションタブにデータを入力します。 Context LabelとしてMake Hard Linkを使用できます。また、オプションDisplay item in selection context menuのみにチェックマークを付けます。つまり、ファイルが選択されたときにこのアイテムを表示します。

Define new action - Action

5。Commandタブに移動して、パラメーターを入力します。

  • プロファイル

    • LabelDefault profile-カスタムプロファイルがない場合。
  • コマンド

    • Path/bin/ln-これは実行可能ファイル(またはコマンド)へのパスです。
    • パラメータ%f 'Hard Link to %b'-詳細については、[ラベル]ボタンをクリックしてください。
    • 作業ディレクトリ%d-現在のディレクトリを意味します。

Define new action - Command

6。なぜなら ディレクトリのハードリンクは複数の方法でファイルシステムを壊す この可能性を無効にしなければならないMimetypesタブに移動し、 新しいルール を追加します。

  • MIMEタイプフィルターinode/directory
  • Must not match any ofオプションが選択されています。

Define new action - Mimetypes

7。記録アクションハードリンクの作成

Define new action - Record

8。 Nautilusを実行し、Make Hard Linkコンテキストメニューのアクションを使用します。

enter image description here


さらに、設定をバックアップする場合:

  • ファイル$HOME/.config/nautilus-actions/nautilus-actions.confにはNautilusアクション設定が含まれています。
  • 新しいアクションはフォルダー内の場所です:$HOME/.local/share/file-manager/actions/

編集:スクリプトを使用したソリューション

スクリプトを使用して$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

このスクリプトを作成して、単一のコマンドで実行可能なアクセス許可を付与できます。

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

結果は次のようになります。

enter image description here

参照:

2
pa4080