Linux環境のstat(1)で表示形式

新しいサーバへコンテンツの移行時など稀に

  • パーミションの確認がやりたい
  • 動作している環境のパーミション情報にそったパーミションに合わせたい。
  • パーミション情報に絞ったdiffができるとうれしい。

っていうシチュエーションがあったりします。

定番のls -Rlで実行するとlsなので当然下記のような情報の並び方になります。
これはこれで一覧性があるのですが、情報のサマリとして再利用するにはちょっと不便です。
ログなどファイルサイズもどんどん変わりますし、このあとsedとかawkとか大活躍しそうな感じです:)

stat(1)の利用

ファイルやファイルシステムの情報を表示するコマンドとしてstat(1)が存在します。
実行してみるとlsでの表示に比べると詳細な情報が表示されることがわかります。

man pageをみてるとこのコマンドには –formatとか–printfというオプションがあるのですね。
(私が昔使ってた環境にはこんなオプションありませんでした・・・)
このオプションを用いると出力結果を自由に整形することができます。
おなじみのfind(1)と合わせて用いると可能性がずいぶんと広がってきます。

オーナー情報のみの表示

パーミション情報のみの表示

他にもファイルのatime/ctime/mtimeだけを表示したり、区切り文字をtabにしてパースしやすくしてみたりという事もできます。

ちょっとした応用

たとえば冒頭でのシチュエーションに戻れば
フォーマットの指定に下記のような文字で書けば、あとで再利用したりもできますね。

そんなに多く出番があるとは私も思っていませんが、知っているとちょっとだけ幸せになれるかもしれません。

投稿者プロフィール

えんじにあん
インフラ系のエンジニアです。
運用系のスクリプトを書いたり、オートメーションな世界に向かって日々精進しています。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Time limit is exhausted. Please reload CAPTCHA.

ABOUTこの記事をかいた人

インフラ系のエンジニアです。 運用系のスクリプトを書いたり、オートメーションな世界に向かって日々精進しています。