質問: findで検索した結果をlsコマンドでサイズやタイムスタンプを加えた形で出力しているのですが、以下のようなことが起こっていて困っています。 □□□□1095 2016-09-01 /aaa/bbb/ccc/0001 48821001 2016-09-01 /aaa/bbb/ccc/0002 □1055326 2016-09-01 /aaa/bbb/ccc/0003 □□□□□□78 2016-09-01 /aaa/bbb/ccc/0004 ---------------------------------------サイズ部分のインデントがずれる □□□□□4826 2016-09-01 /aaa/bbb/ddd/0001 □□7516834 2016-09-01 /aaa/bbb/ddd/0002 □98430614 2016-09-01 /aaa/bbb/ddd/0003 □□□□□□□44 2016-09-01 /aaa/bbb/ddd/0004 多少省略していますがこんな形で表示されています。一番左はそのファイルのサイズなのですが、ファイルのサイズが大幅に違っていても自動的にスペースでインデントを合わせて表示してくれているみたいなのですが、ある一定の場所からスペースの数が変わってしまうのです。(途中まではスペース4個分→スペース5個分) ※□はスペースを意味しています。説明でのインデントを合わせるためサイズ部分だけ全角で書いています。 こういったことがなぜ起こっているのか?解決法浦があれば教えていただけたら嬉しいです。
回答: 何故かコマンドラインが書いてないのですが、`find | xargs ls -l`であれば、対象ファイル数によっては`ls -l`は複数回に分けて実行され得るので、実行ごとに桁揃えが違って当然です。 `ls -l $(find)`であれば`ls -l`は一回で実行されます(行が長すぎて失敗するかも)。 あるいは、`find -ls`か`find -printf "書式"`と`find`自身に出力させる。 > > 説明でのインデントを合わせるためサイズ部分だけ全角で書いています。 > > > > のアイコンを押してコードブロックにするとインデント可能です。