У меня есть древовидная структура папок, например
arndell
\_databases
\_daily
\_weekly
claremont
\_databases
\_daily
\_weekly
monte
\_databases
\_daily
\_weekly
и я только после всех файлов внутри еженедельных и ежедневных каталогов. Есть ли способ, которым я могу добиться этого с помощью команды или команд оболочки?
Я попробовал ls -R */weekly/
из верхней папки, но это не сработало.
решение1
Ну, из верхнего (родительского для каталогов arndell
, claremont
, и monte
) вы можете ввести:
ls */*/{weekly,daily}
Который расширяется до:
ls */*/weekly */*/daily
Что покажет вам содержимое всех каталогов weekly
и daily
.
решение2
если у вас есть bash, вы можете использовать:
shopt -s globstar
for f in **/{daily,weekly}/*; do
whatever $f
done
решение3
find . '(' -path '*/weekly/*' -o -path '*/daily/*' ')' -type f