如果没有指定其他内容,则修改 cp 以复制到当前目录

如果没有指定其他内容,则修改 cp 以复制到当前目录

cp如果我没有指定目的地,我可以修改以便将其复制到当前目录吗?

我希望此命令$ cp ../launcher.sh .等效于$ cp ../launcher.sh。这种修改可以吗?

编辑

这是我迄今为止最好的尝试。当我调用函数时,cp它不起作用...

function cp() {
if [ "$#" -ne 1 ]; then
    cp $1 $2
else
    cp $1 .
fi
}

答案1

你需要类似这样的东西:-

CP() { [ $# == 1 ] && cp "$@" . || cp "$@"; }
alias cp=CP

~/.bashrc如果您想要半永久性的改变,可以添加这些。

请注意,别名在脚本中不起作用:如果您需要进行可在脚本中起作用的更改,则在验证真实位置后,您可以在列表的开头cp使用私有目录,并在其中创建一个可执行脚本,其中包含:-$HOME/bin$PATHcp

/bin/bash
[ $# == 1 ] && /bin/cp "$@" . || /bin/cp "$@"

您需要export PATH=$HOME/bin:$PATH添加~/.bashrc

还要注意,第一个文件之前的任何选项都会使单个参数的测试无效。您需要扫描函数中的参数以检查不以 开头的参数-,在 处停止测试--,然后确保只剩下一个参数。

相关内容