特定のディレクトリ配下(サブディレクトリ含む)にあるファイルまたはディレクトリのみの一覧を取得する方法を解説します。
ファイルのみの一覧を取得する
特定のディレクトリ配下にあるファイルだけの一覧を取得する方法を説明します。
lsコマンドでファイル情報も取得する
ここでは、lsコマンドを使用して、ファイル情報を含めたファイルのみの一覧を取得する方法を説明します。
まず、普通に「ls -lR」コマンドで取得した場合ですが、黄文字の行のようにディレクトリも取得されています。
[root@SYUTAKUWEB01 ws]# ls -lR ./ .: 合計 0 drwxr-xr-x 2 root root 44 12月 6 20:48 dir1 -rw-r--r-- 1 root root 0 12月 6 20:47 file1.txt -rw-r--r-- 1 root root 0 12月 6 20:47 file2.txt -rw-r--r-- 1 root root 0 12月 6 20:47 file3.txt ./dir1: 合計 0 -rw-r--r-- 1 root root 0 12月 6 20:48 file1-1.txt -rw-r--r-- 1 root root 0 12月 6 20:48 file1-2.txt
次に、ファイルのみを取得するサンプルです。
このコマンドについてですが、[ls -l]コマンドの結果で、先頭が[-]の行をカウントすることで、ファイルのみを取得しています。(ディレクトリは先頭が[d]になります。)
[root@SYUTAKUWEB01 ws]# ls -lR ./ | grep ^- -rw-r--r-- 1 root root 0 12月 6 20:47 file1.txt -rw-r--r-- 1 root root 0 12月 6 20:47 file2.txt -rw-r--r-- 1 root root 0 12月 6 20:47 file3.txt -rw-r--r-- 1 root root 0 12月 6 20:48 file1-1.txt -rw-r--r-- 1 root root 0 12月 6 20:48 file1-2.txt
findコマンドで格納パスも取得する
ここでは、findコマンドを使用して、格納パスを含めたファイルのみの一覧を取得する方法を説明します。
相対パスで取得する
[root@SYUTAKUWEB01 ws]# find ./ -type f ./file1.txt ./file2.txt ./file3.txt ./dir1/file1-1.txt ./dir1/file1-2.txt
フルパスで取得する
[root@SYUTAKUWEB01 ws]# find ./ -type f | sed 's@\./@'`pwd`'/@g' /home/ws/file1.txt /home/ws/file2.txt /home/ws/file3.txt /home/ws/dir1/file1-1.txt /home/ws/dir1/file1-2.txt
ディレクトリのみの一覧を取得する
特定のディレクトリ配下にあるディレクトリだけの一覧を取得する方法を説明します。
lsコマンドでファイル情報も取得する
ここでは、lsコマンドを使用して、ファイル情報を含めたディレクトリのみの一覧を取得する方法を説明します。
まず、普通に「ls -lR」コマンドで取得した場合ですが、黄文字の行のようにファイルも取得されています。
[root@SYUTAKUWEB01 ws]# ls -lR ./ ./: 合計 0 drwxr-xr-x 2 root root 44 12月 6 20:48 dir1 drwxr-xr-x 2 root root 44 12月 6 21:33 dir2 -rw-r--r-- 1 root root 0 12月 6 20:47 file1.txt -rw-r--r-- 1 root root 0 12月 6 20:47 file2.txt -rw-r--r-- 1 root root 0 12月 6 20:47 file3.txt ./dir1: 合計 0 -rw-r--r-- 1 root root 0 12月 6 20:48 file1-1.txt -rw-r--r-- 1 root root 0 12月 6 20:48 file1-2.txt ./dir2: 合計 0 -rw-r--r-- 1 root root 0 12月 6 21:33 file2-1.txt -rw-r--r-- 1 root root 0 12月 6 21:33 file2-2.txt ~~省略~~
次に、ディレクトリのみを取得するサンプルです。
このコマンドについてですが、[ls -l]コマンドの結果で、先頭が[d]の行をカウントすることで、ファイルのみを取得しています。
[root@SYUTAKUWEB01 ws]# ls -lR ./ | grep ^d drwxr-xr-x 2 root root 44 12月 6 20:48 dir1 drwxr-xr-x 2 root root 44 12月 6 21:33 dir2 drwxr-xr-x 2 root root 6 12月 6 21:36 dir1-1 drwxr-xr-x 2 root root 6 12月 6 21:36 dir1-2 drwxr-xr-x 2 root root 6 12月 6 21:36 dir2-1 drwxr-xr-x 2 root root 6 12月 6 21:36 dir2-2
findコマンドで格納パスも取得する
ここでは、findコマンドを使用して、格納パスを含めたディレクトリのみの一覧を取得する方法を説明します。
相対パスで取得する
[root@SYUTAKUWEB01 ws]# find ./ -mindepth 1 -type d ./dir1 ./dir1/dir1-1 ./dir1/dir1-2 ./dir2 ./dir2/dir2-1 ./dir2/dir2-2
フルパスで取得する
[root@SYUTAKUWEB01 ws]# find ./ -type d | sed 's@\./@'`pwd`'/@g' /home/ws/ /home/ws/dir1 /home/ws/dir1/dir1-1 /home/ws/dir1/dir1-2 /home/ws/dir2 /home/ws/dir2/dir2-1 /home/ws/dir2/dir2-2
リンク
コメント