RC-скрипт, который выводит себя на передний план при определенных условиях

Вы не можете сделать это напрямую с vim, vim всегда разрешает ссылки, чтобы найти имя фактического файла.

Из :h E773:

For symbolic links Vim resolves the links to find the name of the actual file.  
The swap file name is based on that name.  Thus it doesn't matter by what name  
you edit the file, the swap file name will normally be the same.

Вы можете использовать внешнюю команду для получения текущей рабочей директории, плюс %f статусной строки.

Попробуйте:

set statusline=%{system('echo\ -n\ $\(pwd\ -L\)')}/%f%=%m\ %y\ \%r\ %1*\ \%l\:\%c\ \%2*\ \ \%p%%\ \ 

Дополнительная информация:

:h E773
:h todo.txt
:h version7.txt
1
05.08.2015, 05:47
1 ответ

У меня была похожая ситуация, когда я окружал значение -name в кавычках, но все еще не получал всех попаданий находки, на которые я надеялся. Я предположил, что это из-за symlinks и достаточно уверен, что это так. Если вы хотите принудительно найти поиск через symlinks, вы можете изменить команду следующим образом:

find -L . -name '*.java'
-121--6289-

Предположительно, внешний диск использует файловую систему, такую как FAT-вариант, который не хранит разрешения, и был смонтирован со всеми разрешениями, разрешенными всем. Средство, использованное для копирования файлов, сохранило исходные разрешения.

Яркий цвет предупреждает о том, что файлы доступны для мировой записи. В выходных данных ls -l разрешения rwx сгруппированы в три блока по три символа: пользователь, группа и другие в этом порядке. Таким образом, rwxrwxrwx означает, что каждый может сделать все, в то время как rwxr-xr-x означает файл, который каждый может прочитать и eXecute, но только пользователь, который владеет файлом, может записать. Дополнительные сведения о разрешениях и выходных данных ls -l см. в разделе Общие сведения о разрешениях UNIX и их атрибутах .

Чтобы изменить файлы на доступные только для записи, выполните команду chmod :

chmod -R go-w .

-R означает рекурсивный; go означает влияние на группу и другие разрешения, а -w означает удаление разрешений на запись.

Если требуется удалить разрешение на выполнение из файлов, поскольку они не являются исполняемыми, не просто добавьте x к этой команде. Каталоги должны иметь разрешение x , поскольку в каталоге x фактически означает разрешение на доступ к файлам в этом каталоге ( r позволяет перечислять только содержимое каталога, а не доступ к файлам). Команду find можно использовать для запуска chmod только в каталогах, не являющихся каталогами. Чтобы удалить разрешение на выполнение из всего текущего каталога, кроме каталогов:

find . -type d -o -exec chmod a-x {} +
-121--229154-

Не блокируйте процесс запуска ради одной службы, если только это не какая-то абсолютно критическая служба, без которой машина не может быть использована (например, ввод парольной фразы для расшифровки диска ОС).

Если для запуска какой-либо услуги требуется ручное вмешательство (чего следует избегать, если это вообще возможно, если только не нравится пейджинговать в 3 часа ночи, потому что служба не вернулась после незапланированной перезагрузки из-за сбоя UPS), убедитесь, что она не блокирует загрузку. Положите все, что нужно сделать, на задний план.

Чтобы позволить пользователям взаимодействовать со службой, запустите ее на экране (или tmux, если вы предпочитаете tmux) для создания псевдотерминала, в котором служба будет считывать входные данные и записывать выходные данные в.

screen -d -m -S myservice /usr/local/sbin/myservice --interactive-start

Для подключения к терминалу, созданному с помощью Screen, используйте

screen -r -d -S myservice

Это можно сделать в любом месте: на консоли, через SSH и т.д. Необходимо оба раза выполнить команду screen как один и тот же пользователь.Чтобы отсоединиться от сеанса экрана и оставить его запущенным в фоновом режиме, нажмите Ctrl + A D .

0
28.01.2020, 01:36

Теги

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