2. Написать скрипт с использованием цикла for, выводящий на консоль размеры и права доступа для всех файлов в заданном каталоге и всех его подкаталогах (имя каталога задается пользователем в качестве первого аргумента командной строки).
Как именно связать цикл for с результатом из find ?
Уже лучше, но есть замечания:
- Как выводить в такой очерёдности: $file РАЗМЕР ПРАВА_ДОСТУПА
++ Когда find не имеет доступа (к примеру find /etc не из под root) - выводит: find: /etc/... Ошибка, нет доступа ...... а как в выводе заменить на: "текущий скрипт" Ошибка, нет доступа?
А вы зачем вопрос задали? чтобы за вас задачу из универа решили? Гнать вас в шею оттуда.
Это ресурс не о том, чтобы решать чужие задачи. Это ресурс о вопросах и знаниях.
А кто сказал, что задача не решена? Не получантся единствннный момент (замена слова). А вы, если не знаете пл сути вопроса - воздержитесь от своих умных комментариев.
А теперь внимание: так задачи решать не надо! В реальной ситуации вам могут попасться файлы с пробелами или ещё хуже. Правильно задача решается вот так:
find ./dir -print0 | xargs -0 stat
find и xargs поставляются в одном пакете, а -print0 гарантирует, что имена файлов при передаче никак не пострадают. Плюс советую man find, опция -exec.
А если нужно использовать ИМЕННО for, + нужно вывести только размер, права доступа и имя файла. ++ Очень важно - в результате заменить слово find: ( в контексте оно будет find: ...: отказано в доступе) - на название исполняющегося скрипта ($0) ... как тут быть, подскажите?