我正在使用在 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
}