ウェブサイト検索

[Bashのヒント] 一つのコマンドでcpまたはmvしてcdする方法


先日、私たちは cd と ls を一つのコマンドで実行する方法 を学びました。今日は、さらにもう一つの便利な Bash のヒントを見てみましょう - cp または mv と cd を一つのコマンドで実行する方法です。つまり、ファイルやディレクトリをある場所から別の場所にコピーまたは移動し、瞬時に目的地のディレクトリに cd することができます。もちろん、これは ワンライナー コマンドで実行可能です。例えば、コマンドを使ってファイルやディレクトリを別のディレクトリにコピーまたは移動し、目的地ディレクトリに cd することが可能です:

cp source destination && cd destination

または、

mv source destination && cd destination

しかし、私たちは今それを行うつもりはありません。私たちは単純なbash関数を使用して、cpやmvコマンドとcdコマンドを組み合わせ、1つのコマンドとして実行します。このトリックは、BASHをサポートするすべてのUnix系システムで動作するはずです。

1つのコマンドで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
}

Bash関数で、1つのコマンドでcpまたはmvしてcdする

ファイルを保存して閉じます。変更を反映させるには、次のコマンドを実行してください。

$ source ~/.bashrc

ファイルやディレクトリをある場所から別の場所にコピーまたは移動すると、自動的に目的地の場所に移動します。

いくつかのサンプルのディレクトリとファイルを作りましょう。

$ mkdir dir1 dir2
$ touch file1 file2

次のコマンドを使用して file1 を dir1 にコピーします:

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

ご覧のとおり、上記のコマンドは file1 を dir1 にコピーし、その後自動的に dir1 の場所に cd します。

次のコマンドを使って file2 を dir2 に移動します:

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

このコマンドは file2 を dir2 にコピーし、自動的に dir2 の場所に cd します。

サンプル出力:

1つのコマンドで cp または mv と cd

役に立てば幸いです。

その他のBashのヒント

  • Linuxでファイル名を2回入力せずに名前を変更する
  • さまざまな種類のファイルアーカイブを抽出する Bash 関数