Я изучаю оболочку bash, и в последнее время понял, что я не получаю правильные рекурсивные вызовы, связанные с поиском файлов. Я знаю, что поиск сделан для этого, но меня недавно попросили реализовать определенный поиск в этом путь или другой.bash поиск файлов в каталогах рекурсивно
Я написал следующий сценарий:
#!/bin/bash
function rec_search {
for file in `ls $1`; do
echo ${1}/${item}
if[[ -d $item ]]; then
rec ${1}/${item}
fi
done
}
rec $1
скрипт получает в качестве аргумента файла и ищет для него рекурсивно. Я считаю это бедным решением. и есть несколько вопросов улучшения:
- как найти файлы, которые содержат пробелы в именах
- может я эффективно использовать
pwd
команду для распечатки абсолютный адрес (я пробовал так, но безуспешно) - каждый разумное улучшение кода
[Не используйте команду ls] (http://mywiki.wooledge.org/ParsingLs) – Biffen
@Inian 'find' не встроенная команду в * любой * оболочке. – chepner
@chepner: Договорились, что это должно быть 'GNU findutils' – Inian