В этом случае вы хотите, чтобы ваша функция 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 для всех пользователей.
Надеюсь, это поможет. :)