@Maxic_unrelax

Bash — for и find

Подскажите, пожалуйста: (задание из лабораторной)

2. Написать скрипт с использованием цикла for, выводящий на консоль размеры и права доступа для всех файлов в заданном каталоге и всех его подкаталогах (имя каталога задается пользователем в качестве первого аргумента командной строки).

Как именно связать цикл for с результатом из find ?

Заранее спасибо!
  • Вопрос задан
  • 4826 просмотров
Решения вопроса 1
egor_nullptr
@egor_nullptr Куратор тега Linux
#!/usr/bin/env bash
for file in `find $1 -type f`; do
    ls -ogh --time-style=+"" $file
done
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
А вы зачем вопрос задали? чтобы за вас задачу из универа решили? Гнать вас в шею оттуда.
Это ресурс не о том, чтобы решать чужие задачи. Это ресурс о вопросах и знаниях.
Ответ написан
@RPG
for file in `find ...`; do echo $file; done

А теперь внимание: так задачи решать не надо! В реальной ситуации вам могут попасться файлы с пробелами или ещё хуже. Правильно задача решается вот так:

find ./dir -print0 | xargs -0 stat

find и xargs поставляются в одном пакете, а -print0 гарантирует, что имена файлов при передаче никак не пострадают. Плюс советую man find, опция -exec.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы