别名 `rm` 以创建 CLI“回收站”

别名 `rm` 以创建 CLI“回收站”

当我们这样做时

mv /root/file /root/folder/

它移动/root/file/root/folder

我想做同样的事情,但我想颠倒如何mv看待论点的顺序

我想声明一个别名(不是函数)喜欢

alias rm="mv /root/folder"

所以,当我想做的时候

rm /root/file

它将将该特定文件移动到/root/folder


为什么,我不想使用函数?

因为我无法命名该函数rm(),因为关键字rm已经存在。

我希望能够使用该关键字,rm因为这是我们所有人的常规习惯。

答案1

就我个人而言,我认为这是一个坏主意。如果你想使用垃圾或者回收站在命令行上安装trash-cli.

为什么我认为这是一个坏主意:

  • 当您想要使用rm现有的、删除文件或目录的应用程序时会发生什么?

  • 当您移动的文件的文件名与 中已有的文件相匹配时,会发生什么情况/root/folder


值得注意的是,作者trash-cli也认为这种别名是一个坏主意,经过一些经验之后:

我可以将 rm 别名为垃圾桶吗?

你可以,但你不应该。早期我认为这样做是个好主意,但现在我改变了主意。

...

还有,安德里亚推荐一种替代方法:

您可以使用 rm 别名来提醒您不要使用它:

alias rm='echo "This is not the command you are looking for."; false'

答案2

alias rm="mv -t /root/folder"mv如果您有支持非标准选项,则会这样做-t。看MV(1)以获得更多选择(您可能也需要--no-clobber/ --interactive)。

如果您想要 POSIX 解决方案,您绝对可以解决基本的rmhttp://pubs.opengroup.org/onlinepubs/9699919799/utilities/rm.html#top) 具有名为 的函数rm

rm() {  mv "$@" /root/folder;  } # a start

相关内容