Добавление завершения передачи для рыбалки оболочки

Если и локальный и удаленный сервер поддерживает способность сделать жесткие ссылки, можно использовать этот прием для получения то, что Вы хотите. Метод обсужден в этом сообщении в блоге, названном: Обнаружение Перемещений Файла и Переименовывает с Rsync.

Общие шаги

  1. нормальная синхронизация

    $ rsync -avHP --delete-after ~/family/Photos remotebox:backups
    
  2. теперь внесите некоторые изменения

    $ cd ~/family
    $ cp -rlp Photos Photos-work
    

    CP сделано очень быстро, когда его переключатели: каталоги копии *R*ecursively + *файлы L*ink вместо того, чтобы копировать + *режим P*reserve, владение и метки времени (для non-hardlinked содержания, такие как каталоги)

    Сделайте перестройку в фото рабочем каталоге: можно переименовать, переместить, добавить и удалить любые файлы. Но не КАСАЙТЕСЬ дерева на фотографиях, этом каталоге (с теми же наборами путей на обеих машинах), позволит rsync быстро находить, что данные клонируются при фото работе над удаленной машиной.

  3. Когда Вы сделаны, реорганизовав, Вы выполняете это:

    $ rsync -avHP --delete-after --no-inc-recursive ~/family/Photos ~/family/Photos-work remotebox:backups
    

    Путем передачи обоих деревьев сразу и путем выключения возрастающей рекурсии, rsync собирает все жесткие ссылки, прежде чем это передаст что-либо. Это теперь может восстановить фото работу над удаленной машиной В СЕКУНДАХ. Затем Вы завершаете:

    $ mv Photos Photos-OLD
    $ mv Photos-work Photos
    

    И Вы делаете это и на локальных и на удаленных машинах. Можно иметь в наличии каталог OLD столько, сколько Вы хотите, пространство, которое он использует, обычно незначительно.

3
15.12.2015, 08:00
1 ответ

Второй из перечисленных вариантов (~/.config/fish/completions/pass.fish) является предпочтительным. Третий вариант также должен работать.

Я попробовал следующее:

  1. Поместите файл по адресу ~/.config/fish/completions/pass.fish
  2. Введите pass и пробел
  3. Нажмите tab

И я вижу завершения из этого файла.

Возможно, что fish ищет в другом месте. Попробуйте echo $fish_complete_path и убедитесь, что он включает ~/.config/fish/completions/ . Если это не так, вы можете вернуть настройки по умолчанию, стерев их и начав новую сессию: set -e fish_complete_path.

5
27.01.2020, 21:16

Теги

Похожие вопросы