[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
}
ファイルを保存して閉じます。変更を反映させるには、次のコマンドを実行してください。
$ 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 します。
サンプル出力:
役に立てば幸いです。
その他のBashのヒント
- Linuxでファイル名を2回入力せずに名前を変更する
- さまざまな種類のファイルアーカイブを抽出する Bash 関数
