Ответ 1
Следующие строки могут дать вам представление... что вы просите
#!/bin/bash for FILE in `ls -l` do if test -d $FILE then echo "$FILE is a subdirectory..." fi done
Вы можете заглянуть в цикл 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 для этого?
Следующие строки могут дать вам представление... что вы просите
#!/bin/bash for FILE in `ls -l` do if test -d $FILE then echo "$FILE is a subdirectory..." fi done
Вы можете заглянуть в цикл bash для цикла.
find . -mindepth 1 -maxdepth 1 -type d
В конкретном случае вы ищете 1) каталог, в котором вы знаете имя 2), почему бы не попробовать с этим:
find . -name "octave" -type d
попробуйте использовать
find $path -type d
?
для текущего каталога
find . -type d
Здесь уже много решений, поэтому только для удовольствия:
file ./**/* | grep directory | sed 's/:.*//'
Вы должны использовать:
ls -lR | isitadirectory.sh
(параметр -R является рекурсией)
Не уверен... но, может быть, команда tree - это то, на что вы должны смотреть. http://linux.die.net/man/1/tree
tree -L 2 -fi