Linuxでディレクトリ差分表示diff で ファイル名だけ表示させるには -q オプション
diffコマンドの使い方
ディレクトリの比較
diffコマンドは、ファイルやディレクトリの差分を表示するコマンドです。
通常、テキストファイルは差分がある部分を下リストのように、
< 左側のディレクトリ・ファイルにある部分
>右側のディレクトリ・ファイルにある部分
というように、差分の内容まで表示してくれます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
[vagrant@localhost html]$ diff -r -x cache -x var eccube eccube_bu Only in eccube/app/Plugin: .composer Only in eccube/app/Plugin: PostCarrier4 diff -r -x cache -x var eccube/composer.json eccube_bu/composer.json 187,197d186 < }, < "repositories": { < "eccube": { < "type": "composer", < "url": "https://package-api.ec-cube.net", < "options": { < "http": { < "header": ["X-ECCUBE-KEY: WhPhb5P1qI5vJYDQfiTfjszLvZlfgx0mSrxxxxxx"] < } < } < } diff -r -x cache -x var eccube/composer.lock eccube_bu/composer.lock 7c7 < "content-hash": "b8527c07c79ff82d87f5651c95b", --- > "content-hash": "4aedd826fc4b90e6b15ee228f27", 1691,1714d1690 < }, < { < "name": "ec-cube/PostCarrier4", < "version": "4.1.1", < "dist": { < "type": "tar", < "url": "https://package-api.ec-cube.net/ec-cube/PostCarrier4/4.1.1/PostCarrier4-4.1.1.tgz" < }, < "require": { < "ec-cube/plugin-installer": "~0.0.6" < }, < "type": "eccube-plugin", < "extra": { < "code": "PostCarrier4", < "id": 1940 < }, < "description": "ポストキャリアプラグイン", < "transport-options": { < "http": { < "header": [ < "X-ECCUBE-KEY: WhPhb5P1qI5vJYDQfiTfjszLvZlfgx0mSrE" < ] < } < } Only in eccube/html/plugin: PostCarrier4 diff -r -x cache -x var eccube/vendor/composer/LICENSE eccube_bu/vendor/composer/LICENSE 0a1 > 19a21 > diff -r -x cache -x var eccube/vendor/composer/autoload_classmap.php eccube_bu/vendor/composer/autoload_classmap.php 4096,4130d4095 < 'Plugin\\PostCarrier4\\Controller\\ConfigController' => $baseDir . '/app/Plugin/PostCarrier4/Controller/ConfigController.php', < 'Plugin\\PostCarrier4\\Controller\\DiscardController' => $baseDir . '/app/Plugin/PostCarrier4/Controller/DiscardController.php', < 'Plugin\\PostCarrier4\\Controller\\HistoryController' => $baseDir . '/app/Plugin/PostCarrier4/Controller/HistoryController.php', (省略) |
ちなみに、上の例では、
1 |
diff -r -x cache -x var eccube eccube_bu |
のように使っており、-r オプション、-x オプションを使ってます。
-r はディレクトリの中も再帰的にチェックしてくれるオプション、-x は除外するディレクトリ・ファイルのパターンを指定するオプションです。
この場合、cache ディレクトリと var ディレクトリを除外して、eccube ディレクトリとeccube_bu ディレクトリを比較しています。
差分のあるファイル名だけ表示
さて、差分があるファイル一覧の情報を得たいとき、ファイル内の差分情報は邪魔になります。
こんな時、-q オプションを付けると、差分のあるファイル名の表示だけしてくれます。
先ほどの例では、
1 |
diff -q -r -x cache -x var eccube eccube_bu |
となります。
実行したときの結果は下リストのようになります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[vagrant@localhost html]$ diff -q -r -x cache -x var eccube eccube_bu Only in eccube/app/Plugin: .composer Only in eccube/app/Plugin: PostCarrier4 Files eccube/composer.json and eccube_bu/composer.json differ Files eccube/composer.lock and eccube_bu/composer.lock differ Only in eccube/html/plugin: PostCarrier4 Files eccube/vendor/composer/LICENSE and eccube_bu/vendor/composer/LICENSE differ Files eccube/vendor/composer/autoload_classmap.php and eccube_bu/vendor/composer/autoload_classmap.php differ Files eccube/vendor/composer/autoload_files.php and eccube_bu/vendor/composer/autoload_files.php differ Files eccube/vendor/composer/autoload_psr4.php and eccube_bu/vendor/composer/autoload_psr4.php differ Files eccube/vendor/composer/autoload_real.php and eccube_bu/vendor/composer/autoload_real.php differ Files eccube/vendor/composer/autoload_static.php and eccube_bu/vendor/composer/autoload_static.php differ Files eccube/vendor/composer/installed.json and eccube_bu/vendor/composer/installed.json differ [vagrant@localhost html]$ |
1 |
Files eccube/composer.json and eccube_bu/composer.json differ |
のように、テキストファイルに差分があることだけ表示され、差分の内容は表示されなくなります。
かなりすっきりしてますね。
まとめ
Linux系の差分表示コマンド diff でファイル名だけ表示したいときは、-q オプションを使いましょう。
コメント