|
0 / 0 / 0
Регистрация: 11.12.2016
Сообщений: 18
|
|
Подсчитать для каталога и его подкаталогов суммарный размер и количество файлов в заданном диапазоне размеров18.03.2019, 21:19. Показов 9520. Ответов 1
Написать скрипт, считающий для заданного каталога и всех его подкаталогов суммарный размер и количество файлов в заданном диапазоне размеров файлов (имя каталога задаётся пользователем в качестве аргумента командной строки, 2,3 аргументы командной строки диапазон размеров). Результаты выводятся на консоль в виде полный путь, количество файлов, суммарный размер.
Огромная благодарность за помощь!
0
|
|
| 18.03.2019, 21:19 | |
|
Ответы с готовыми решениями:
1
Вывести суммарный размер в байтах файлов каталога Как в PS1 выводить количество файлов и подкаталогов домашнего каталога? Удаления файлов с каталога ( и подкаталогов) если размер больше 5 Гб |
|
|
|||||||||||||||||||||
| 19.03.2019, 10:54 | |||||||||||||||||||||
Сообщение было отмечено Vollan как решение
Решение
Раз нужно написать скрипт, значит создадим файл с именем например test.sh
Напишем вверху особую строчку называющуюся Sha-bang! вызывающую интерпретатор bash #!/bin/bashНам нужна тулза способная искать рекурсивно файлы определенного размера и выводить путь к ним плюс сам размер Второе. Нам необходимо будет посчитать их количество и сложить их размер. С первой задачей может справиться утилита find. Чтобы посмотреть нужные опции введите в терминале LESS=+/"-size" man findМожете воспользоваться этой частью man страницы для вывода справки по использованию размеров диапазона. Давайте напишем образец. Так как нужен в выводе полный путь к файлам, а заданный в параметре путь может быть как полным так и относительным, применим конструкцию $(cd $1; pwd) приобразующую любой корректный путь в полный. Пока наш скрипт не рабочий просто подставляем в начало строки команду echo которую обязуемся в дальнейшем убрать echo find $(cd $1; pwd)Добавим нашему файлу права на выполнение chmod 755 test.shИ запустим получившийся скрипт
Добавим например маску имени файла echo find $(cd $1; pwd) -name "*.txt"Или лучше укажем например тип простого файла, ну чтобы отсеить каталоги и ссылки echo find $(cd $1; pwd) -type fТеперь напишем фильтр по которому команда find будет отбирать файлы нужного нам размера Определимся сразу, чтобы не переусложнять скрипт, что все размеры файлов у нас будут в байтах echo find $(cd $1; pwd) -type f -size +"$2"c -a -size -"$3"cКстати тут кроется небольшая тонкость. В указанный диапазон не попадают файлы совпадающие с самими заданными границами размеров. Тоесть по условию +size > file < -size. Если есть необходимость чтобы размеры отобраных файлов включали и границы заданого диапазона, необходимо начальный размер уменьшить на еденицу а замыкающий размер соответственно увеличить на единицу. Готово. Теперь нам понадобится отформатировать вывод. Посмотрим внимательно в инструментарий команды find LESS=+/"-printf format" man findЕсть подходящие квантификаторы к опции -fprintf Выведем каждый найденный файл в одной строке с параметрами разделенными пробелом. В первом параметре определим полный путь к файлу, а во втором его размер в байтах. find $(cd $1; pwd) -type f -size +$2 -a -size -$3 -printf "%p %s\n"Вот теперь можно убрать команду echo и сделать пробный заезд
Переходим ко второй части задания, подсчета файлов и общего тоннажа стопки Я не буду ломать себе голову и воспользуюсь инструментом awk который с подобной работой справляется на раз Перенаправим вывод команды find на вход утилиты awk через конвеер
Добавлю только что необходимо включить в скрипт проверку на корректность вводимых данных. Добавлено через 17 минут У меня возникло сомнение что необходимо выводить так: Полный путь К КАТАЛОГУ Число найденных файлов в этом каталоге Общий размер файлов в этом каталоге Тогда программа срочно принимает вид
1
|
|||||||||||||||||||||
| 19.03.2019, 10:54 | |
|
Помогаю со студенческими работами здесь
2
Перенос файлов из каталога и всех его подкаталогов в одну папку Подсчитать количество подкаталогов и файлов В заданном каталоге и его подкаталогах найти общее количество подкаталогов В заданном каталоге и его подкаталогах найти общее количество подкаталогов. На экран вывести только требуемый результат. Использовать цикл FOR /D Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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 была полностью переписана на Си, в. . .
|