- PR -

Linux ディレクトリの階層を調べる方法について教えてください。

1
投稿者投稿内容
kata
ベテラン
会議室デビュー日: 2006/10/04
投稿数: 69
投稿日時: 2006-11-30 18:49
kataと申します。

お分かりの方がいらしたらご教授お願いいたします。

Linuxのディレクトリの階層を調べる方法を探しています。

条件は、「2階層下までのディレクトリ」です。
ファイルは必要ありません。
#----------------------------------#
[例題]
コマンド オプション /tmp/test
#----------------------------------#

などと入力したときに、
/tmp/test/2階層下までのディレクトリを
一覧で標準出力したいのです。

*このような形
/tmp/test/hoge/
/tmp/test/hoge/mono1/
/tmp/test/hoge/mono2/
/tmp/test/poo/
/tmp/test/poo/desu1/
/tmp/test/poo/desu2/

tree -d /tmp/test とすると、test以下全ディレクトリ出力されてしまって、
多すぎるのです。

du -h /tmp/testでもいいのですが、
これもtest以下全ディレクトリ出力されてしまいます。

何かいい方法はないものでしょうか?

ご教授お願いいたします。
ハラスン
会議室デビュー日: 2006/09/22
投稿数: 4
投稿日時: 2006-11-30 19:30
du なら

 du -h --max-depth=2 /tmp/test

でどうでしょう?
kata
ベテラン
会議室デビュー日: 2006/10/04
投稿数: 69
投稿日時: 2006-11-30 19:40
はらすん様
ご返答ありがとうございます。

引用:

はらすんさんの書き込み (2006-11-30 19:30) より:
du なら

 du -h --max-depth=2 /tmp/test

でどうでしょう?



manにありましたね。
注意深く探していませんでした。すみません。

他にも方法があるようでしたら
ご教授お願いいたします。
スフレ
ぬし
会議室デビュー日: 2005/05/27
投稿数: 281
お住まい・勤務地: 東京
投稿日時: 2006-11-30 21:11
shのみだったら、以下のような感じで。
コード:
TOP=/tmp/test
for file in $TOP/* $TOP/*/*
do
  if [ -d "$file" ]
  then
    echo $file
  fi
done


Console
ベテラン
会議室デビュー日: 2005/09/10
投稿数: 65
お住まい・勤務地: 石川県金沢市
投稿日時: 2006-12-01 03:06
find とか tree もありますか。

tree -d -f -i -L 2 /tmp/test
find /tmp/test -maxdepth 2 -type d

# 未検証です。

[追記]
tree コマンドってなくなりました?

[ メッセージ編集済み 編集者: Console 編集日時 2006-12-01 03:07 ]
kata
ベテラン
会議室デビュー日: 2006/10/04
投稿数: 69
投稿日時: 2006-12-01 09:42
スフレ様
ご返答ありがとうございます。

シェルを組むというのも一つの手ですね。
forで回すのは大変分かりやすいです。
ありがとうございます。


Console様
ご返答ありがとうございます。
引用:

Consoleさんの書き込み (2006-12-01 03:06) より:
find とか tree もありますか。

tree -d -f -i -L 2 /tmp/test
find /tmp/test -maxdepth 2 -type d

# 未検証です。

[追記]
tree コマンドってなくなりました?

[ メッセージ編集済み 編集者: Console 編集日時 2006-12-01 03:07 ]



tree,findコマンド共に情報ありがとうございます。
2つともうまく階層表示できました。

http://rpmfind.net/ で "tree" で検索すると
いくつかありました。その中の最新だとFedora4対応のrpmですね。
1

スキルアップ/キャリアアップ(JOB@IT)