Я наконец пришел к изучению и пониманию жестких ссылок в своем стремлении проверить, что я понял основы, из которых мне удалось пропустить много. Понимая, насколько они великолепны, я удивляюсь, почему нет лучшей поддержки для них в стандартном файловом менеджере Ubuntu, nautilus.
На данный момент есть только одна опция для создания ссылки на файл, и она создаст «мягкую» ссылку.
Проблема в том, что они ломаются, как только вы перемещаете или переименовываете исходный файл.
Есть ли способ заставить nautilus создать жесткую ссылку, или какой-то аддон / скрипт / конфигурация / твик, который я могу сделать, чтобы добавить опцию в меню правой кнопки мыши или сочетание клавиш для создания жесткой ссылки на файл?
По-видимому, эта опция является намеренно сокращением несколько лет назад. От темы, Создающей жесткие ссылки из bugzilla.gnome.org:
Почти ни один из наших пользователей не знает hardlink понятия, итак, почему мы должны смутить его и даже рискнуть потерей данных? Можно использовать открытый терминал наутилуса и создать hardlinks вручную.
Хорошие новости - Вы, имеют две опции создать эту функцию:
1. Сначала установите пакет nautilus-actions
:
sudo apt update
sudo apt install nautilus-actions
Или использование программное обеспечение Ubuntu:
2. Запустите программу:
3. Перейдите к 'Предпочтениям', и снятие флажка 'Создают корневое Меню действий Наутилуса':
Когда эта опция будет отмечена, в контекстном меню будет иметь подменю, и т.д.
4. Нажмите на Define новая кнопка действий и заполните данные на вкладке Action. Как Маркировка Контекста можно использовать Make Hard Link
, также отметьте только опцию Display item in selection context menu
- другими словами, отобразите этот объект, когда файл будет выбран.
5. Перейдите к вкладке Command и заполните параметры:
Профиль:
Default profile
- если нет никакого пользовательского профиля.Команда:
/bin/ln
- это - путь к исполняемому файлу (или команда).%f 'Hard Link to %b'
- нажмите на кнопку Label для большего количества информации.%d
- текущий каталог средств.6. Поскольку Каталог hardlinks повреждает файловую систему несколькими способами, мы должны отключить эту возможность. Перейдите к вкладке Mimetypes и добавьте новое правило:
inode/directory
,Must not match any of
опция выбрана.7. Запись действие Делает Жесткую ссылку:
8. Выполненный Наутилус и использование Делают действие Жесткой ссылки из контекстного меню:
Кроме того, если Вы хотите скопировать свои настройки:
$HOME/.config/nautilus-actions/nautilus-actions.conf
содержит предпочтения Действий Наутилуса.$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
Мы можем создать этот сценарий и дать ему исполняемые полномочия через команду:
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/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
${HOME}/.local/share/icons/mine/folder-green-activities-icon.png