Linux 複数コマンドをワンラインで実行

Linuxで複数コマンドをワンラインで実行するには

Linuxで複数のコマンドをワンライン(1行で)で実行する方法はいくつかあります。

ここで紹介している方法は、ひとつのコマンドがエラーになっても次のコマンドが実行される点は注意が必要です。

| (パイプ)で繋ぐ

コマンドを | で繋いで複数のコマンドを実行します。

1 | 2
[root@centos7-101 ~]# ls -l /tmp/test
合計 20
-rw-r--r--. 1 root root 5 11月 11 19:44 test_data01.dat
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data01.log
-rw-r--r--. 1 root root 0 11月 11 19:31 test_data01.text
-rw-r--r--. 1 root root 5 11月 11 19:44 test_data02.dat
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data02.log
-rw-r--r--. 1 root root 0 11月 11 19:31 test_data02.text
-rw-r--r--. 1 root root 5 11月 11 19:44 test_data03.dat
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data03.log
-rw-r--r--. 1 root root 0 11月 11 19:31 test_data03.text
-rw-r--r--. 1 root root 5 11月 11 19:44 test_data04.dat
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data04.log
-rw-r--r--. 1 root root 0 11月 11 19:31 test_data04.text
-rw-r--r--. 1 root root 5 11月 11 19:44 test_data05.dat
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data05.log
-rw-r--r--. 1 root root 0 11月 11 19:31 test_data05.text
-rw-r--r--. 1 root root 0 11月 11 19:31 test_data06.dat
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data06.log
-rw-r--r--. 1 root root 0 11月 11 19:31 test_data06.text
-rw-r--r--. 1 root root 0 11月 11 19:31 test_data07.dat
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data07.log
-rw-r--r--. 1 root root 0 11月 11 19:31 test_data07.text
-rw-r--r--. 1 root root 0 11月 11 19:31 test_data08.dat
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data08.log
-rw-r--r--. 1 root root 0 11月 11 19:31 test_data08.text
-rw-r--r--. 1 root root 0 11月 11 19:31 test_data09.dat
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data09.log
-rw-r--r--. 1 root root 0 11月 11 19:31 test_data09.text
-rw-r--r--. 1 root root 0 11月 11 19:31 test_data10.dat
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data10.log
-rw-r--r--. 1 root root 0 11月 11 19:31 test_data10.text

上記のディレクトリのファイルでlogの付くものだけをリストするには、

[root@centos7-101 ~]# ls -l /tmp/test | grep log
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data01.log
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data02.log
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data03.log
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data04.log
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data05.log
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data06.log
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data07.log
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data08.log
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data09.log
-rw-r--r--. 1 root root 0 11月 11 19:30 test_data10.log

あまりこういう使い方はしないと思いますが、サンプル例とお考えください。

; で繋ぐ

コマンド1;コマンド2

サンプルはディレクトリを移動してから、pathを表示します。検証とかには使う場合があるかもしれません。

[root@centos7-101 ~]# cd /tmp/test; pwd
/tmp/test
[root@centos7-101 test]# 

; の場合は、ひとつ目のコマンドの次にふたつ目のコマンドを実行するので、| と同じコマンドを繋げると、次のようになります。
| でコマンドを繋ぐ場合とは動作が違います。

スポンサーリンク
spdsk-side
spdsk-side