Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
6 / 6 / 1
Регистрация: 27.11.2012
Сообщений: 160

Перенаправление потока ошибок в файл $3

20.03.2014, 22:30. Показов 2540. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
нужно найти все файлы в директории, подсчитать их размер и количество . вывести всё в файл .
с подсчётом я разобрался, хотя если вы можете помочь это сделать в одну команду было бы лучше =)
не перенаправить перенаправить поток ошибок в файл $3, помогите, пожалуйста.

Bash
1
2
3
#!/bin/bash
du -b $1 | awk 'END { print $1 }' >$2 
find $1 -type f | wc -l  >>$2
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.03.2014, 22:30
Ответы с готовыми решениями:

Перенаправление потока ошибок в файл
Добрый день. Помогите разобраться со скриптом (Написать скрипт подсчитывающий суммарный размер файлов в заданном каталоге и всех его...

Перенаправление потока в файл
Здравствуйте. Делаю устройство на OpenWrt, которое общается с STM32 по UART. Проблема заключается в следующем: контроллер посылает на...

Перенаправление ошибок
Здравствуйте. Помогите решить проблему перенаправления ошибок bash скрипта. В частности вывод ошибок осуществляется на экран, а не в файл...

9
 Аватар для Amet13
1362 / 1074 / 110
Регистрация: 16.03.2012
Сообщений: 4,543
21.03.2014, 00:25
Цитата Сообщение от luciys Посмотреть сообщение
нужно найти все файлы в директории
Если рекурсивно, то:
Bash
1
du -ab имя_каталога
Вывод числа файлов:
Bash
1
du -ab имя_каталога | wc -l
Вывод размеров файлов:
Bash
1
du -ab имя_каталога | cut -f1
Что должно быть на выходе? В файле что должно быть записано?
0
6 / 6 / 1
Регистрация: 27.11.2012
Сообщений: 160
21.03.2014, 00:57  [ТС]
Amet13, сумма размеров файлов и их количество .

Добавлено через 10 минут
ну и поток ошибок в файл перенаправить .
0
Модератор
Эксперт NIX
 Аватар для NeoMatrix
8532 / 3374 / 105
Регистрация: 24.05.2011
Сообщений: 14,602
Записей в блоге: 8
21.03.2014, 06:55
Цитата Сообщение от luciys Посмотреть сообщение
сумма размеров файлов и их количество
К вариантам, данным выше Amet13, припишите в конце
Bash
1
>logname 2>errlogname
0
6 / 6 / 1
Регистрация: 27.11.2012
Сообщений: 160
21.03.2014, 09:31  [ТС]
NeoMatrix, не выходит
Bash
1
2
3
4
#!/bin/bash
du -ab $1 | wc -l > $2
du -ab $1 | awk 'END { print $1 }' >>$2
>$3 2>$3
а чем
Bash
1
du -ab имя_каталога | cut -f1
отличается от моего
Bash
1
du -аb $1 | awk 'END { print $1 }'
ошибки всё равно на экран выводит .

Добавлено через 20 минут
нужно все файлы в директориях, их поддиректориях, так что
Bash
1
du -ab $1 | wc -l
не подходит
0
Модератор
Эксперт NIX
 Аватар для NeoMatrix
8532 / 3374 / 105
Регистрация: 24.05.2011
Сообщений: 14,602
Записей в блоге: 8
21.03.2014, 16:03
А зачем вы везде используете переменные?
Цитата Сообщение от luciys Посмотреть сообщение
Bash
1
find $1 -type f | wc -l >>$2
У меня великолепно отработало в таком виде:
Bash
1
find .. -type f | wc -l  >log1
Правда я искал в каталоге выше. Для вашего случая - одной точкой меньше (текущий каталог).

Добавлено через 56 секунд
Попробуйте имена директорий и файлов задавать явно.
0
6 / 6 / 1
Регистрация: 27.11.2012
Сообщений: 160
21.03.2014, 20:27  [ТС]
NeoMatrix, я уже сделал )
я задание не говорил полностью, мне нужно было:
"Написать скрипт подсчитывающий суммарный размер файлов в заданном каталоге и всех его подкаталогах (имя каталога задаётся пользователем в качестве аргумента командной строки). Скрипт выводит результаты подсчета в файл (второй аргумент командной строки) в виде каталого(полный путь), суммарный размер файлов число просмотренных файлов."

вот что у меня получилось:
Bash
1
2
3
4
5
6
7
8
9
#!/bin/bash
if [ $# -eq 4 ]
then
IFS=$'\n'
(find $1 -type f | wc -l >$2 ) > errors 2>$3
(du -ab $1 | awk 'END { print $1 }' >> $2) > errors 2>>$3
sed -i "s/find/$(basename $0)/g;s/du/$(basename $0)/g" $3
cat $3>&2
fi
0
Модератор
Эксперт NIX
 Аватар для NeoMatrix
8532 / 3374 / 105
Регистрация: 24.05.2011
Сообщений: 14,602
Записей в блоге: 8
21.03.2014, 21:50
Хорошо!
Ваша ошибка здесь в том, что вы берёте значение из одной переменной и кладёте результат в другую переменную.
Но при этом ни первая переменная не привязана ни к какому каталогу, ни вторая переменная не привязана ни к какому файлу!
То есть, без данных привязок переменных к конкретному пространству файловой системы ничего не получится.

Добавлено через 2 минуты
Подсказка: юзайте $PATH
0
6 / 6 / 1
Регистрация: 27.11.2012
Сообщений: 160
21.03.2014, 21:55  [ТС]
NeoMatrix, сделал же уже)
и не понимаю о чём Вы =)
я же работаю через значения аргументов командной строки, т.е. вывожу в $2 и ошибки в $3, зачем мне переменные ? а ищу в директории $1
0
Эксперт по компьютерным сетямЭксперт NIX
 Аватар для Dmitry
13440 / 7534 / 830
Регистрация: 09.09.2009
Сообщений: 29,554
22.03.2014, 19:31
Цитата Сообщение от NeoMatrix Посмотреть сообщение
Но при этом ни первая переменная не привязана ни к какому каталогу, ни вторая переменная не привязана ни к какому файлу!
$1, $2 и т.д. - это зарезервированные имена переменных, которые передаются скрипту непосредственно из командной строки.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.03.2014, 19:31
Помогаю со студенческими работами здесь

Перенаправление потока ввода
Что делают команды в строке терминала 1<2 2<<1

Перенаправление потока в файл и обратно
проблема следующая. функция вызывается в меню, вводим файл, вводим строку, а потом в консоль ничего не выводится и программа перестаёт...

Перенаправление потока stdin в файл и обратно в консоль
Добра вам! Задача элементарная - считать из файла строку, а после - считать с клавиатуры число. Проблема: Ввод с клавиатуры не...

Перенаправление потока
Как можно связать поток stdin с консолью, когда он ранее был перенаправлен в файл следующей командой: freopen("input.txt",...

Перенаправление потока
Мне нужно получить список файлов в директории и перенаправить поток в текстовый файл. Отдельно перенаправить поток и получить список файлов...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru