.bashrc 具有固定第二个参数的命令别名

.bashrc 具有固定第二个参数的命令别名

我想为移动命令创建一个别名 -

trash='mv <some files> /home/$USER/.local/share/Trash/files'

我该如何让它工作?

我希望目的地始终相同。但我希望能够传递要移动的文件。

答案1

使用函数代替别名,定义在.bashrc

nano ~/.bashrc 

# put inside .bashrc:
trash() { 
  for item in "$@" ; do
    echo "Trashing: $item" 
    mv "$item" /home/$USER/.local/share/Trash/files 
  done
}

然后在 shell 提示符下你可以使用:

$ trash file1 file2

答案2

您只能附加参数到别名。幸运的是,mv允许你这样做,选择-t

alias trash='mv -t ~/.local/share/Trash/files'

答案3

您还可以创建一个 bash 脚本并使用别名运行该脚本。

垃圾.sh:

#!/bin/sh

for arg in $*; do
    mv $arg /home/$USER/.local/share/Trash/files
done

exit 0

.bashrc:

alias trash="/path/to/script/trash.sh"

相关内容