Подтвердить что ты не робот

Bash найти каталоги

Я новичок в сценариях bash. Я просто пытаюсь сделать script, который будет искать через каталог и эхо-имена всех подкаталогов.

Основой для кода является script (назовите его isitadirectory.sh):

     #!/bin/bash

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

поэтому в командной строке, если я набираю

       $bash isitadirectory.sh somefilename 

Он будет эхом somefilename, если это каталог.

Но я хочу искать все файлы в родительском каталоге.

Итак, я пытаюсь найти способ сделать что-то вроде

           ls -l|isitadirectory.sh

Но, конечно, вышеуказанная команда не работает. Может ли кто-нибудь объяснить хороший script для этого?

4b9b3361

Ответ 1

Следующие строки могут дать вам представление... что вы просите

#!/bin/bash

for FILE in `ls -l`
do
    if test -d $FILE
    then
      echo "$FILE is a subdirectory..."
    fi
done

Вы можете заглянуть в цикл bash для цикла.

Ответ 2

find . -mindepth 1 -maxdepth 1 -type d

Ответ 3

В конкретном случае вы ищете 1) каталог, в котором вы знаете имя 2), почему бы не попробовать с этим:

find . -name "octave" -type d

Ответ 4

попробуйте использовать

find $path -type d?

для текущего каталога

find . -type d

Ответ 5

Здесь уже много решений, поэтому только для удовольствия:

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

Ответ 6

Вы должны использовать:

ls -lR | isitadirectory.sh

(параметр -R является рекурсией)

Ответ 7

Не уверен... но, может быть, команда tree - это то, на что вы должны смотреть. http://linux.die.net/man/1/tree

tree -L 2 -fi