lsコマンドでディレクトリのみ表示する方法

ls コマンドでディレクトリのみ表示

ls コマンドでディレクトリのみを表示する方法を紹介します。

ls -l 対象パスとすると、下記のようにファイル名とディレクリ名が表示されますが、これをディレクトリのみで表示する方法です

$ ls /var/www/vhosts/www.example.com/html/
ads.txt                      wp-activate.php       wp-content         wp-mail.php
wp-admin              wp-cron.php        wp-settings.php
highlight                    wp-blog-header.php    wp-includes        wp-signup.php
index.php                    wp-comments-post.php  wp-links-opml.php  wp-trackback.php
license.txt                  wp-config-sample.php  wp-load.php        xmlrpc.php
readme.html                  wp-config.php         wp-login.php

grepコマンドを利用して、ディレクトリのみ表示する

grepコマンドを ls -l でコマンドを利用して、「ls -l 対象パス | grep -d」とすれば、ディレクトリのみ表示できます

$ ls -l /var/www/vhosts/www.example.com/html/ | grep ^d
drwxrwxr-x  3 apache apache  4096  3月  1  2019 highlight
drwxrwxr-x  9 apache apache  4096  1月 22  2020 wp-admin
drwxrwxr-x  8 apache apache  4096 11月  5 00:14 wp-content
drwxrwxr-x 24 apache apache 12288  8月 31 13:42 wp-includes

この場合は、ls -l で所有者名・グループ名・ (バイト単位の) サイズ・タイムスタンプを表示しているので、不要な情報もあるのでawkコマンドでひつような情報のみにします

$ ls -l /var/www/vhosts/www.example.com/html/ | grep ^d | awk '{print $9}'
highlight
wp-admin
wp-content
wp-includes

lsコマンドの「-d」のオプションを利用して、ディレクトリのみ表示する

lsコマンドで「-d」のオプションではディレクトリの中身を表示せず、 他のファイルと同じようにディレクトリ名をリスト表示する。

このオプションで利用してカレントディレクトリでディレクトリのみ表示する場合は、以下のように「ls -d */」とすれば表示されます

# カレントディレクトリの内容を表示します。
# script  test tmp  varがディレクトリで、 test.shがファイルです

$ ls
script  test  test.sh  tmp  var

$ ls -d */
script/  test/  tmp/  var/

カレントディレクトリではなくて、ディレクトリを指定する場合は以下のようになります。対象ディレクトリの最後に */ とすれば表示できるかと思います

$ ls -d /var/www/vhosts/www.example.com/html/*/
/var/www/vhosts/www.example.com/html/highlight/
/var/www/vhosts/www.example.com/html/wp-admin/
/var/www/vhosts/www.example.com/html/wp-content/
/var/www/vhosts/www.example.com/html/wp-includes/

 

スポンサーリンク