sudo rm 跟 root 用户的 rm 有什么区别(rmtrash的疑问)?

用 rmtrash 代替 rm,在 bashrc 里做了 alias rm=/bin/rmtrash.sh
发现个人账号使用 rm 时,会把文件移动到 ~/.rmtrash 文件夹中,
root 账号也会移动到 root 目录下的 ~/.rmtrash

但是个人账号 sudo rm 的时候就不会放在 .rmtrash 下,个人账号和root账号下都找过了。
请问

  1. sudo rm 跟 root 用户的 rm 有什么区别?
  2. rmtrash 使用 sudo 删除时,调用的是 rm 还是 rmtrash?如果调用的还是 rm,怎么改成调用 rmtrash?
阅读 7.1k
1 个回答
在通过 sudo 运行命令时,系统会默认重置环境变量为安全的环境变量
  1. 两者环境不一样。
  2. 调用的应该是 rm,因为用户的 alias 并不会在sudo环境中。
  • 解决方法:将 sudo 通过用户进程执行,从而获得了用户环境。
alias sudorm='sudo /bin/rmtrash.sh'
# 或者针对所有 sudo 保留用户环境变量 
alias sudo='sudo '
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题