如何将多个文件复制到一个目录并同时进入该目录?

如何将多个文件复制到一个目录并同时进入该目录?

我正在尝试在我的 .bashrc 中编写一个 bash 函数,它复制目录中的多个文件并进入该目录,问题是它复制了文件但没有进入目录并说:“省略目录” cpcd()if [ -d "${!#}" ] then cp "$@" "${!#}" && cd "${!#}" && ls else print "last argument is not a directory or does not exist" fi

答案1

当你这样做时:

cp "$@" "${!#}"

其效果是重复最后一个参数(目录名)。

因此,我认为您想要的可能是这个(只需删除"${!#}"):

cp "$@"

另一个问题是你说它没有进入目录。你刚刚正常执行的脚本不会改变你当前的工作目录;如果你想要这样做,你需要改为执行脚本。因此,不要像这样运行它:

./yourscript.sh [arguments]

然后你可以像这样获取它:

. yourscript.sh [arguments]

相关内容