В этом случае вы хотите, чтобы ваша функция bash по сути работала как отдельный скрипт. Использование его как bash_alias не работает, потому что sudo не знает об этом. Когда вы выполняете sudo trash somefile
, он ищет этот скрипт в /root/.bash_alias
, а не /home/youruser/.bash_alias
. Поскольку эта функция существует только как bash_alias в домашнем каталоге вашего пользователя, sudo/root говорит, что ее не существует. Все, что вам нужно сделать, это сделать вашу функцию доступной для всех пользователей, включая sudo (root).
Вы можете обойти это, либо добавив свой псевдоним в конец вашего файла /etc/profile
который будет информировать всех пользователей о функции, либо вы можете создать bash-скрипт в /usr/bin/trash
для выполнения тех же самых важных задач. функция. В более позднем сценарии вы также захотите выполнить команду sudo chmod 755 /usr/bin/trash
чтобы все пользователи могли выполнять программу.
В любом случае, в любом случае будет работать, но я предлагаю метод /etc /profile, так как это просто простая функция псевдонима для перемещения файлов в корзину. Нет причин ограничивать это для других пользователей. Всегда не забывайте учитывать последствия для безопасности, связанные с созданием bash_alias для всех пользователей.
Надеюсь, это поможет. :)