lsコマンドでディレクトリのみ表示する方法
Contents
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/
ディスカッション
コメント一覧
ls -l 対象パス | grep -d
↓
ls -l 対象パス | grep -d
ではないでしょうか?
訂正です
ls -l 対象パス | grep -d
↓
ls -l 対象パス | grep ^d
ではないでしょうか?
記事内の箇所だと、「^(キャレット)」が勝手に変換されるので、ls -l 対象パス | grep -d になるかと思います
findコマンドも便利に使えます。
例えば、カレントディレクトリ直下のディレクトリ名一覧を得るには
find . -maxdepth 1 -type d
ls と組み合わせて詳細情報を表示
find . -maxdepth 1 -type d -exec ls -ld {} \;