2017年09月03日

unix ls ディレクトリのみ

unix ls ディレクトリのみ

ls はご存知UNIXにシェルでログインしている時に、とても利用頻度の高いコマンドだ。
ディレクトリの中身を表示する。

ここんとこシェルにログインしていなかったので、すごいイキオイでコマンドを忘れている。
(こういうときに「トシを食ったのだな」と感じる)

ディレクトリだけを表示したかったのだが上手く行かない。
そこで代替として・・・

自分で考えたコマンド

find . -type d -print

最初、「d」ではなく、「directory」にしていた。
「directory」ではダメなようだ。
これは find: invalid argument `directory' to `-type' となった。

で、「d」指定で上手く行ったのだが、findコマンドを使うのは面倒くさい。
悪くないんだが、ウェブで検索してみた。たしか、lsコマンドで一発で出来たような気がしたからだ。

1位
ls -d */
or
ls -d */*/

出典:http://atmarksharp.v01.jp/posts/ls-directory-only.html

2位
ls -F | grep /

感想:ゴミが混じった

出典:http://yuyunko.hatenablog.com/entry/20110304/1299218939

3位 3パターン紹介されている
findを使うパターン
find . -maxdepth 1 -type d

感想:うーん。階層の指定か・・・

ls -lの結果をgrepしてディレクトリだけ表示する
ls -l | grep ^d

感想:ジャマだ!

treeを使う
tree -d

 <− ウチのマシン特有の問題で、
「あれ? treeが入ってないじゃん?」

出典:http://blog.taikomatsu.com/2013/10/09/linux-ls-dir/comment-page-1/

結論
1位のヤツが一番ラクだ
環境によって、表示のされ具合は変わると思うので、あくまで上記は私見である。




おっと3位の記事のコメント欄に、こんなのがあった。

$ cd <タブキー>

これは知らなかったな。
しかし、これじゃリダイレクトでファイルに落とせない。

posted by ユニブロ at 02:54 | 東京 ☀ | Comment(0) | 技術メモ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。