Как передать право собственности на файлы между дистрибутивами?

Попробуйте отключить режим мыши в vim с помощью :set mouse=. Добавьте это к вашему~/.vimrc(без:). Вам также может понадобиться закомментировать любую существующую строку set mouse=, если она есть.

Это отключит всю обработку мыши -в vim, вернув к X-обработке мыши по умолчанию -, т.е. щелчок левой кнопкой -, чтобы начать выделение, щелчок правой кнопкой -, чтобы расширить выделение, и средний -. ] щелкните, чтобы вставить. В частности, обратите внимание, что щелчок мышью в окне vim будет , а не перемещать курсор мыши или взаимодействовать с режимом визуального выбора vim.


Кстати, рассматривали ли вы возможность использования :mapили записи макросов вместо того, чтобы использовать на мыши суб-стандартные версии функций, встроенных -в vim?

Достаточно просто сопоставить последовательности команд с клавишами, например. :map, JJJj, чтобы сопоставить их с запятой.

Или используйте qс последующей буквой или цифрой для записи макроса в регистр. например. qaJJJjqдля связывания JJJjс @a. Затем вы можете запустить этот макрос, просто набрав @a. Вы также можете записать множество макросов и сопоставить их с ,или любым другим по мере необходимости, чтобы быстро переключаться между несколькими общими операциями. например.:map, @a

Я использую клавишу,(запятая )для краткого -термина (, то есть отображения текущего сеанса редактирования ), потому что он не сопоставлен ни с чем, что я когда-либо использовал. Для постоянных сопоставлений я использую функциональные клавиши и устанавливаю их в своем файле ~/.vimrc. например. map <F5> {!}par^V^M}сопоставляет клавишу F5 для перемещения курсора в начало текущего абзаца, передачи его через средство преобразования абзаца par, а затем перемещения курсора за пределы абзаца (vim, построенного -. ] в абзаце переформатирование, но я предпочитаю par).

Обратите внимание, что сопоставления и макросы могут быть сколь угодно сложными. Запись макроса с помощью qбудет записывать все, что вы вводите, пока вы снова не наберете q. и если вы хотите вставить управляющий символ, такой как ESC или возврат каретки -, в команду :map,вы можете использовать Ctrl-Vили ^V, чтобы «убежать» от них при входе на карту -, например.

:map, Do^V^[!!date -R^V^MkJ

Это отображает ,для замены остатка текущей строки (от текущей позиции курсора )на текущую дату и время в формате RFC -2822.

или если вы хотите найти шаблон, соединить три строки, а затем снова выполнить поиск, вы можете сделать что-то вроде этого:

:map, JJJn

Затем выполните первый поиск с помощью /pattern<enter>и нажмите ,, чтобы выполнить объединение и поиск следующего вхождения. В этот момент вы можете выбрать, присоединиться ли и снова искать (нажать ,снова )или просто снова искать (нажатьn)или сделать что-то совсем другое. Я обычно делаю такие вещи, когда не хочу выполнять простой поиск -и -замену, но хочу решать каждый раз (, например. когда, вероятно, будет слишком много ложных -положительных совпадений, и создание идеального шаблона поиска по регулярному выражению займет больше времени, чем того стоит)

Вышеупомянутое является лишь очень простым примером того, для чего это можно использовать -это не сильно отличается от простого ввода 3Jи последующего нажатия nдля поиска -далее и .для повторить последнюю команду... и можно, конечно, :map,.n. Это действительно полезно, когда вам нужно повторить последовательность команд, которую нельзя повторить всего лишь.

0
06.10.2019, 23:47
1 ответ

I don't know how to transfer ownership of files from an account on one installation to an account on another.

Файлы не принадлежат имени пользователя, они принадлежат UID. Сопоставление между именем пользователя и UID обычно управляется в файле базы данных пользователей /etc/passwd. Вот пример фрагмента

root:x:0:0:root:/root:/bin/bash
tom:x:1000:1000:Tom Pearce,,,:/home/tom:/bin/bash
bill:x:1001:1001:Bill Brewer,,,:/home/bill:/bin/bash
jan:x:1002:1002:Jan Stewer,,,:/home/jan:/bin/bash
peter:x:1003:1003:Peter Gurney,,,:/home/peter:/bin/bash

При запуске ls -lвладельцы UID/GID для каждого файла преобразуются с помощью этой базы данных в соответствующие имена. Вы можете увидеть фактические имена с помощью ls -ln.

Итак, для «передачи» права собственности на файлы у вас есть несколько вариантов

  1. Убедитесь, что сопоставление имени с UID/GID одинаково в обеих системах. В этом случае chown/ chgrpне требуются, поскольку владельцы файлов сопоставляются с одним и тем же набором имен в обеих системах.

  2. Узнайте исходный UID/GID и целевой UID/GID и измените каждый затронутый файл один за другим. Это не так просто, как кажется, потому что вы должны быть осторожны, чтобы не изменить файл на пару UID/GID, которая впоследствии будет изменена еще раз. Как правило, вы должны chown/ chgrpдля каждого файла указать временный диапазон UID, который нигде не используется ни в одной из систем, а затем изменить их с этого набора на фактический набор.

    # Example to change file UIDs from 1000 to 1010
    find / -mount -user 1000 -exec chown 61010 {} +
    
    # Later, when you've moved all the file ownwerships out of the 1xxx range
    find / -mount -user 61010 -exec chown 1010 {} +
    
3
28.01.2020, 02:22

Теги

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