[Bash Tips] 如何在一个命令中 cp 或 mv 和 cd

前几天我们学会了如何 cd 和 ls 在一个命令中. 今天我们将看到另一个很酷的 Bash 技巧 – cp 或者 mvcd 在一个命令中。 含义 – 我们要将文件/目录从一个位置复制或移动到另一个位置,并且 cd 立即进入目标目录。 当然我们可以用 单线 命令。 为了 example,可以使用以下命令将文件/目录复制或移动到另一个目录并 cd 到目标目录:

cp source destination && cd destination

或者,

mv source destination && cd destination

但是,我们现在不打算这样做。 我们使用一个简单的 bash 功能 将 cp 或 mv 命令与 cd 命令结合起来并作为单个命令运行。 这个技巧应该适用于所有支持 BASH 的类 Unix 系统。

如何在一个命令中 cp 或 mv 和 cd

打开你的 ~/.bashrc 在您喜欢的编辑器中的文件:

$ nano ~/.bashrc

在末尾添加以下行:

#cp and cd in one command
cpcd (){
  if [ -d "$2" ];then
    cp $1 $2 && cd $2
  else
    cp $1 $2
  fi
}

#mv and cd in one command
mvcd (){
  if [ -d "$2" ];then
    mv $1 $2 && cd $2
  else
    mv $1 $2
  fi
}
一个命令中的 cp 或 mv 和 cd 的 Bash 函数

Save 和 close 文件。 运行以下命令使更改生效。

$ source ~/.bashrc

现在将文件/目录从一个位置复制或移动到另一个位置,您将自动登陆目标位置。

让我们制作一些示例目录和文件。

$ mkdir dir1 dir2
$ touch file1 file2

现在使用命令将 file1 复制到 dir1:

$ cpcd file1 dir1
$ pwd
/home/sk/dir1

如您所见,上面的命令复制了 file1dir1 然后自动 cd 进入 dir1 地点。

下一步行动 file2dir2 使用命令:

$ cd
$ mvcd file2 dir2
$ pwd
/home/sk/dir2

该命令复制 file2dir2 它会自动 cd 进入 dir2 地点。

样本输出:

cp 或 mv 和 cd 在一个命令中

希望这可以帮助。

其他 Bash 技巧

  • 在 Linux 中重命名文件而不输入两次全名
  • 用于提取各种类型文件档案的 Bash 函数