如何在一个命令中执行cp和cd

时间:2020-03-21 11:42:44  来源:igfitidea点击:

在Linux中cp 或mv 后执行cd
意味着我们将要将文件/目录从一个位置复制或者移动到另一个位置,并立即进入目标目录。
当然,我们可以用一个in-liner命令执行此操作。
例如,可以使用命令将文件/目录复制或者移动到目标目录中的其他目录和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 "" ];then
    cp   && cd 
  else
    cp  
  fi
}
#mv and cd in one command
mvcd (){
  if [ -d "" ];then
    mv   && cd 
  else
    mv  
  fi
}

保存并关闭文件。
运行以下命令以生效更改。

$source ~/.bashrc

现在将文件/目录从一个位置复制或者移动到另一个位置,我们将自动登陆目的地位置。

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

$mkdir dir1 dir2
$touch file1 file2

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

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

如我们所见,上面的命令将File1复制到Dir1,然后将CD自动CD到Dir1位置。

接下来使用命令将文件2移动到dir2:

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

此命令将File2复制到DIR2,将CD自动CD插入DIV2位置。