linuxで一番よく使うコマンドといえば「ls」ですよね。Linuxでlsコマンドは現在のディレクトリにあるファイルやサブディレクトリを一覧表示するために使用されます。
開発をしているとディレクトリ(フォルダ)の一覧だけを参照したいことがよくあります。一般的にはgrepなどのフィルタリングコマンドを使用して表示するファイルやディレクトリを絞り込むと思いますが、lsコマンドには、grepなどのフィルタリングツールを使用しなくても、ディレクトリ(フォルダ)のみを表示するためのオプションがあります。
この記事では、lsコマンドを使用して、grepを使用せずにディレクトリ一覧のみを表示する方法を紹介します。
ls -d オプションで、ディレクトリの一覧を表示
lsコマンドには、様々なオプションが用意されています。その中には、ディレクトリのみを表示するためのオプションもあります。このオプションは、-dです。
次のコマンドを使用すると、現在のディレクトリのディレクトリのみが表示されます。
$ ls -d */
bin/ config/ logs/ plugins/ src/ tests/ tmp/ vendor/ webroot/
このコマンドを実行すると、現在のディレクトリにあるディレクトリのみが表示されます。ファイルは表示されず、ディレクトリの詳細情報も表示されません。
- -dオプション: このオプションは、ディレクトリ自体の情報を表示し、その中に含まれるファイルやサブディレクトリの情報は表示しません。
- */ 引数:この引数は、ファイルではなくディレクトリを指定することを示します。
この方法は現在のディレクトリのみを対象としています。特定のディレクトリ内にあるディレクトリのみを一覧表示する場合は、次のようにサブディレクトリのパスを指定する必要があります。
$ ls -d /root/myweb/www/htdocs/mylaravel/src/*/
Auth/ Console/ Controller/ Model/ Shell/ Template/ View/
ls -ld で パーミッション情報を含めて表示する
パーミッションなどの情報が必要な場合は、-dオプションに加えて l(エル)オプションを使用します。記述としては、ls のあとに 「-ld」または [-dl] とdオプションとlオプションを記述します。
$ ls -ld */
drwxr-xr-x 2 members 51 10月 10 2021 Auth/
drwxr-xr-x 2 members 34 10月 10 2021 Console/
drwxr-xr-x 3 members 4096 1月 7 2022 Controller/
drwxr-xr-x 5 members 62 10月 10 2021 Model/
drwxr-xr-x 2 members 37 10月 10 2021 Shell/
drwxr-xr-x 45 members 4096 1月 7 2022 Template/
drwxr-xr-x 3 members 72 10月 10 2021 View/
これで現在のディレクトリにあるディレクトリの詳細な情報が表示されます。アクセス権限などを確認する際に便利な方法です。
ls -R オプションで ディレクトリ配下のサブディレクトリも再起的に表示
さらに、-Rオプションを使用すると、サブディレクトリのディレクトリも含めて、すべてのディレクトリを再帰的に表示することができます。上記の dオプションやlオプションと合わせて利用すると詳細なディレクトリ一覧が表示できます。
以下の階層にいるときに、ディレクトリ「Template」はいかにあるディレクトリを権限付きで一覧表示してみます。
$ ls
Application.php Auth Console Controller Model Shell Template View
$ ls -Rld ./Template/*/
drwxr-xr-x 2 members 86 10月 10 2021 ./Template/CstRanks/
drwxr-xr-x 2 members 86 10月 10 2021 ./Template/CstTypes/
drwxr-xr-x 2 members 4096 10月 10 2021 ./Template/Customers/
drwxr-xr-x 2 members 67 1月 7 2022 ./Template/DealInits/
drwxr-xr-x 2 members 86 10月 10 2021 ./Template/Documents/
drwxr-xr-x 6 members 85 1月 7 2022 ./Template/Element/
drwxr-xr-x 4 members 40 10月 10 2021 ./Template/Email/
drwxr-xr-x 2 members 56 10月 10 2021 ./Template/Error/
drwxr-xr-x 2 members 88 1月 7 2022 ./Template/Home/
drwxr-xr-x 2 members 110 10月 10 2021 ./Template/Invoicedefers/
drwxr-xr-x 2 members 4096 11月 20 2021 ./Template/Invoicegroups/
drwxr-xr-x 2 members 86 10月 10 2021 ./Template/Invoicelogs/
drwxr-xr-x 2 members 86 11月 18 2021 ./Template/Invoicerows/
drwxr-xr-x 2 members 112 1月 7 2022 ./Template/Invoices/
drwxr-xr-x 4 members 4096 11月 18 2021 ./Template/Layout/
drwxr-xr-x 2 members 99 10月 10 2021 ./Template/Links/
drwxr-xr-x 2 members 86 10月 10 2021 ./Template/MachineNames/
drwxr-xr-x 2 members 4096 10月 10 2021 ./Template/Machines/
drwxr-xr-x 2 members 86 10月 10 2021 ./Template/MakerNames/
drwxr-xr-x 3 members 126 1月 7 2022 ./Template/Ordermanages/
今日はここまでです。