web-dev-qa-db-ja.com

bashディレクトリを見つける

Bashスクリプトは初めてです。ディレクトリを検索し、すべてのサブディレクトリの名前をエコーするスクリプトを作成しようとしています。

コードの基礎は次のスクリプトです(isitadirectory.shと呼びます)。

     #!/bin/bash

     if test -d $1
         then
                echo "$1"
     fi

コマンドラインで入力すると

       $bash isitadirectory.sh somefilename 

ディレクトリの場合、somefilenameをエコーし​​ます。

しかし、親ディレクトリ内のすべてのファイルを検索したいです。

だから、私は次のようなことをする方法を見つけようとしています

           ls -l|isitadirectory.sh

しかし、もちろん上記のコマンドは機能しません。誰でもこれを行うための良いスクリプトを説明できますか?

24
user485498

以下の行はあなたにアイデアを与えるかもしれません...あなたが求めているもの

#!/ bin/bash 
 
「ls -l」のファイル
 do 
 if test -d $ FILE 
 then 
 echo "$ FILEはサブディレクトリです..." 
 fi 
 done 

Bashの「for」ループを調べることができます。

4
Learner
find . -mindepth 1 -maxdepth 1 -type d

特定のケースでは、1)2)名前を知っているディレクトリを探しています。これを試してみませんか:

find . -name "octave" -type d
32
fiorentinoing

使用してみてください

find $path -type d

現在のディレクトリ用

find . -type d

8
zb'
find ./path/to/directory -iname "test" -type d

これは、大文字と小文字を区別しない検索で-inameを使用してディレクトリ名を見つけるのに非常に役立ちます。ここで、「テスト」は検索語です。

3
Jason Jewel

すでに多くのソリューションがありますので、楽しみのためだけに:

 file ./**/* | grep directory | sed 's/:.*//'
3
jm666

確かではありませんが、多分treeコマンドはあなたが見るべきものです。 http://linux.die.net/man/1/tree

tree -L 2 -fi
0
Johan

以下を使用する必要があります。

ls -lR | isitadirectory.sh

(パラメーター-Rは再帰です)

0
Jan Marek