Как создавать псевдонимы с «перекрывающимися» именами к существующим командам? [Дубликат]

Допустим, я хочу создать псевдоним под названием SS для команды sudo -s . Но SS уже есть существующая команда, поэтому я хочу создать другой псевдоним под названием SST для команды SS .

Если использование только обычных командных имен, это невозможно, поскольку псевдоним:

  1. не устанавливаются таким образом, чтобы порядок и
  2. ссылаться на другие псевдонимы, а не только ссылки на ссылке

Если я пробую следующее:

alias sst='ss'
alias ss='sudo -s'

Запуск команды SST приводит к работе Sudo -S , что не мое намерение.

Как это может быть сделано?

1
задан 26 February 2021 в 18:54

1 ответ

Если вы используете оснастку VLC, вероятно, именно поэтому. Для доступа к файлам в домашней папке используется интерфейс home . Он также может использовать интерфейс съемных носителей (см. snap connections vlc ) для чтения данных на съемных устройствах, таких как USB-ключи и смонтированные тома.

Итак, то, что происходит, так это то, что изолированные функции безопасности snap блокируют это. Обходной путь заключается в использовании «bind mounts» вместо symlinks. Таким образом, вы можете, например, sudo mount -o bind/meda/bigdisk/home/Videos/bigdisk , и VLC должен иметь возможность видеть это.

-121--909486-

Я нашел проблему. Ранее я установил 2-портовый переключатель ATEN USB kvm для клавиатуры/мыши. Его удаление решает проблему.

-121--909551-

Для выполнения вышеуказанных действий необходимо указать абсолютный путь выполнения команды.

Это можно сделать следующим образом:

alias sst='/usr/bin/ss'
alias ss='sudo -s

Однако не всегда можно быть уверенным, что ss находится в этом месте, поэтому более прочный подход будет:

alias sst='$(which ss)'
alias ss='sudo -s

Теперь выше работает, как и ожидалось, где ss запускает sudo-s и sst выполняет команду ss .

1
ответ дан 18 March 2021 в 23:30

Другие вопросы по тегам:

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