Использование интерактивной монтазии Git изнутри Bash Script

В Unix все является файловым дескриптором .

В этом случае «все» включает обычные файлы, каталоги, разделы (например, / dev / sda1 ), устройства (например, / dev / sda ), виртуальные устройства (например, / dev / null ) и символические ссылки.

Но что в данном случае означает «файловый дескриптор»? Это запись в корне вашей файловой системы, указывающая на расположение данных на вашем диске или в памяти (для виртуальных файлов). Обратите внимание, что, например, в ext? -файловых системах существует еще один уровень абстракции между файловым дескриптором и данными, называемый «индексный дескриптор».

Итак, в вашем примере музыка - это символическая ссылка, которая представлена ​​дескриптором файла, как и любой другой файл или каталог. Но у него есть специальный установленный флаг, чтобы идентифицировать его как символическую ссылку, где для каталога будет установлен другой флаг, определяющий его как таковой. Теперь система может интерпретировать символическую ссылку, которая на самом деле является просто строкой, содержащей абсолютный или относительный путь к цели.

Он интерпретируется как каталог, только если вы явно указываете за ним / , в противном случае он обрабатывается как файл.

1
09.11.2018, 11:46
1 ответ

Я думаю, что VIM всегда открывается, когда git ожидает, что вы наберете описательное сообщение. Вы можете обойти это, предоставив сообщение соответствующей команде git с помощью опции «-m».

напр. см. :git stash --справку

...
git stash store [-m|--message <message>] [-q|--quiet] <commit>
...

дополнительная информация после уточнения в комментариях:

Существует не -интерактивный (исходный режим ex )в VIM :"vim -e", запуск команды "ex" из bash также должен работать.Но вам все равно нужно будет передать в него команды vim. Злоупотребление окружением $EDITOR непосредственно перед вызовом git rebase, например. (-для бесшумного режима):

export EDITOR="cat commands.vim | vim -es"

Но когда вы уже злоупотребляете окружением $EDITOR, вы также можете просто написать еще один скрипт bash, который выполняет модификации файлов и использовать его в качестве редактора:

export EDITOR="/path/to/your/script/"

В любом случае, после этого не забудьте сбросить свой $EDITOR.

2
27.01.2020, 23:31

Теги

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