Bashスクリプトは初めてです。ディレクトリを検索し、すべてのサブディレクトリの名前をエコーするスクリプトを作成しようとしています。
コードの基礎は次のスクリプトです(isitadirectory.shと呼びます)。
#!/bin/bash
if test -d $1
then
echo "$1"
fi
コマンドラインで入力すると
$bash isitadirectory.sh somefilename
ディレクトリの場合、somefilenameをエコーします。
しかし、親ディレクトリ内のすべてのファイルを検索したいです。
だから、私は次のようなことをする方法を見つけようとしています
ls -l|isitadirectory.sh
しかし、もちろん上記のコマンドは機能しません。誰でもこれを行うための良いスクリプトを説明できますか?
以下の行はあなたにアイデアを与えるかもしれません...あなたが求めているもの
#!/ bin/bash 「ls -l」のファイル do if test -d $ FILE then echo "$ FILEはサブディレクトリです..." fi done
Bashの「for」ループを調べることができます。
find . -mindepth 1 -maxdepth 1 -type d
特定のケースでは、1)2)名前を知っているディレクトリを探しています。これを試してみませんか:
find . -name "octave" -type d
使用してみてください
find $path -type d
?
現在のディレクトリ用
find . -type d
find ./path/to/directory -iname "test" -type d
これは、大文字と小文字を区別しない検索で-inameを使用してディレクトリ名を見つけるのに非常に役立ちます。ここで、「テスト」は検索語です。
すでに多くのソリューションがありますので、楽しみのためだけに:
file ./**/* | grep directory | sed 's/:.*//'
確かではありませんが、多分treeコマンドはあなたが見るべきものです。 http://linux.die.net/man/1/tree
tree -L 2 -fi
以下を使用する必要があります。
ls -lR | isitadirectory.sh
(パラメーター-Rは再帰です)