是否有任何命令可以在终端中同时复制并进入该目录

是否有任何命令可以在终端中同时复制并进入该目录

我正在使用在 Ubuntu 上运行的谷歌云。

每次我上传文件时我都必须复制cp filename.zip ../../directory/,然后再次输入路径cd ../../directory/并解压文件。

我需要知道是否有任何命令可以让我复制并 cd 到该目录而无需两次输入长目录路径。

答案1

这不是一个单一的命令,但bash我最喜欢的方式是:

$ cp filename.zip ../../directory/
$ cd :ESC: .

在最后一行中,我的意思是按Esc+ .。此组合从最后一个命令中选择最后一个参数,在您的情况下是../../directory/

另一种方式是:

$ cp filename.zip ../../directory/; cd $_

您可以在以下位置找到类似的命令stackoverflow.com:如何使用上一个命令的参数?

答案2

您可以将此功能添加到您的.bashrc

cpcd() { cp "$1" "$2" && cd "$2" ; }

然后,您可以cpcd将要复制的文件作为第一个参数,将要复制/更改的目录作为第二个参数进行调用。

例如cpcd file.txt ~/Downloads将复制file.txt~/Downloads,并且您最终也会进入~/Downloads

您甚至可以添加ls以直观地查看该文件确实位于所需的目录中。

cpcd() { cp "$1" "$2" && cd "$2" && ls; }

或者说,真的保证这一点……

cpcd() {
    cp "$1" "$2" && cd "$2"
    if [ -f ./"$1" ]
    then
        echo "Successfully copied '$1' into '$2'."
    fi
}

相关内容