カレントパス内のディレクトリを一覧表示するコマンドです。ls -d */`
パターン */
は具体的に何をするのでしょうか。
また、上記のコマンド(例:ls -d /home/alice/Documents
)で絶対パスを与えると、そのパス内のディレクトリのみをリストアップすることができますが、これはどのようにして行うのでしょうか?
echo
を使う例: echo */
, echo */*/
以下はその結果です。
cs/ draft/ files/ hacks/ masters/ static/
cs/code/ files/images/ static/images/ static/stylesheets/
例) ls -d */
これがまさに私が得たものです。
cs/ files/ masters/
draft/ hacks/ static/
または、リストとして(詳細情報付き): ls -dl */
と
grep` の使用例: ls -l | grep "^d"
以下のような結果になりました。
drwxr-xr-x 24 h staff 816 Jun 8 10:55 cs
drwxr-xr-x 6 h staff 204 Jun 8 10:55 draft
drwxr-xr-x 9 h staff 306 Jun 8 10:55 files
drwxr-xr-x 2 h staff 68 Jun 9 13:19 hacks
drwxr-xr-x 6 h staff 204 Jun 8 10:55 masters
drwxr-xr-x 4 h staff 136 Jun 8 10:55 static
例: for i in $(ls -d */); do echo ${i%%/}; done
以下は、私が得た結果です。
cs
draft
files
hacks
masters
static
末尾に「/」をつけたい場合は、次のようになります。for i in $(ls -d */); do echo ${i}; done
となります。
cs/
draft/
files/
hacks/
masters/
static/
使っています。
ls -d */ | cut -f1 -d'/'
これは、末尾にスラッシュのない単一のカラムを作成するもので、スクリプトに便利です。
私の2セントです。