8ttyan’s blog

コンピュータ関係の小ネタ

lsコマンドでディレクトリだけ表示

-dオプションでディレクトリ内部を検索しないようにした上で,検索対象の末尾にスラッシュをつける:

ls -d */

スラッシュ(/)を消去する場合は

echo $(ls -d */) | sed 's/\///g'

※スラッシュ消去だけでなく,改行?が入ってしまうため,echoする必要がある.

最後に,シェルの変数に代入し,各ディレクトリに対するループ処理をしてみる.

myDIRs=$(echo $(ls -d */) | sed 's/\///g')
for aDIR in ${myDIRs}
do
  #何らかの処理
done