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

Найти наибольший файл в заданном каталоге

08.02.2016, 00:57. Показов 2314. Ответов 6

Студворк — интернет-сервис помощи студентам
Задание :
Написать скрипт, который определяет в текущем каталоге файл максимального
размера удаляет его и все файлы начинающиеся на тот же символ. Если таких файлов
нет, то создать каталог, имя которого пользователь вводит с клавиатуры.

решение :
в процессе решения столкнулся с проблемой поиска файла МАКСИМАЛЬНОГО размера. пробовал и циклом и как угодно но знаний в данной области не хватает. есть идеи? заранее спс

Добавлено через 20 минут
нашел следующее:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#!/bin/bash
 
FILES=$(ls)
MAXSIZE=-1
for file in $FILES; do
 SIZE=$(wc -c $file | sed -e 's/[[:space:]]/ /' | cut -d" " -f1)
 if [ $SIZE -gt $MAXSIZE ]; then
 MAXSIZE=$SIZE
 fi
done
echo "Max: $MAXSIZE"
FILENAMES=$(wc -c * | grep $MAXSIZE | sed -e 's/[[:space:]]/ /' | cut -d" " -f2)
for filename in $FILENAMES; do
 echo $filename
done
Добавлено через 23 минуты
12 строчка f3 надо так работает

Добавлено через 1 час 2 минуты
проблема на данный момент в поиске файла. не могу понять как передать значение переменной в поиск.
т е сделал переменную в которой содержится первый символ и надо выполнить примерно следующее
find . -type f -name $firstsym* -delete
но увы.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.02.2016, 00:57
Ответы с готовыми решениями:

Найти в каталоге, заданном аргументом командного файла, первый txt-файл
Основные проблемы с 1 пунктом и 3. Буду рад любым подсказкам) 1. Найти в каталоге, заданном аргументом командного файла, первый txt-файл,...

Код, который удаляет файл в заданном каталоге и делает проверку
каталог - это папка? и как это выглядит

Вывод содержимого указанных каталогов в файл протокола, находящийся в заданном каталоге
Здравствуйте форумчане! Нужна помощь. Нужно организовать команды так, чтобы при отсутствии первого параметра (имя каталога) не...

6
 Аватар для volodin661
6686 / 2278 / 347
Регистрация: 10.12.2013
Сообщений: 7,871
08.02.2016, 04:21
Цитата Сообщение от bodreevich Посмотреть сообщение
есть идеи?
есть
Bash
1
ls -1S|head -n1|cut -b1
дальше сам.
1
Эксперт NIX
 Аватар для nezabudka
3334 / 752 / 252
Регистрация: 28.06.2015
Сообщений: 1,552
Записей в блоге: 16
08.02.2016, 11:49
Думаю возникнет проблемма с вложенными директориями и ваще
с наличаем директорий в каталоге выполнения. Так же вполне может
оказатся что ваш скрипт и будет наибольшим файлом. Думаю скрипт
должен выглядеть примерно так
Bash
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env bash
cd $dir #уберем скрипт подальше и зайдем из вне
file=$(ls -S1 --file-type | grep -v "/" | head -1)
rm $file
count=$(find ./ -maxdepth 1 -type f -name "${file:0:1}*" | wc -l)
if [[ $count -lt 1 ]]; then
        read d
        mkdir $d
else
        find ./ -maxdepth 1 -type f -name "${file:0:1}*" -delete
fi
Все могло бы быть гораздо проще но помойму команда find не возвращает статус выполненной команды
1
0 / 0 / 1
Регистрация: 24.05.2015
Сообщений: 6
08.02.2016, 22:52  [ТС]
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/bin/bash
 
FILES=$(ls)
MAXSIZE=-1
for file in $FILES; do
 SIZE=$(wc -c $file | sed -e 's/[[:space:]]/ /' | cut -d" " -f1)
 if [ $SIZE -gt $MAXSIZE ]; then
 MAXSIZE=$SIZE
 fi
done
echo "Max: $MAXSIZE"
FILENAMES=$(wc -c * | grep $MAXSIZE | sed -e 's/[[:space:]]/ /' | cut -d" " -f2)
for filename in $FILENAMES; do
 echo $filename
 firstsym=${filename:0:1}
 find . -type f -name ""$filename"*" -not -name $filename
 #выведет нужные мне файлы но проблема в том как сделать проверку их существования и удалить
 #попробовал сделать так
 #if delete=$(find . -type f -name ""$firstsym"*" -not -name $filename -exec echo -n "1" \; );
 #[ "$delete" = "" ]
 #then read name
 #mkdir $name
 #else echo "deleting"
 #fi
done
Добавлено через 7 минут
заработало. сейчас перепроверю и запилю код
0
0 / 0 / 1
Регистрация: 24.05.2015
Сообщений: 6
08.02.2016, 23:23  [ТС]
я случайо удалил к ...м файл с этой ерундой.благо переодически делал скрины.
опция -delete в find - зло
Миниатюры
Найти наибольший файл в заданном каталоге   Найти наибольший файл в заданном каталоге  
0
0 / 0 / 1
Регистрация: 24.05.2015
Сообщений: 6
08.02.2016, 23:25  [ТС]
2й скрин с добавленной строкой if [delete -eq ""] более актуален. ее нужно делать. на 1м просто 2я часть длинной строки.
с утра еще поковыряю удаление. осталось только его.
пока находит переходит по веткам ифа нормально.
всем Бобра.
0
Эксперт NIX
 Аватар для nezabudka
3334 / 752 / 252
Регистрация: 28.06.2015
Сообщений: 1,552
Записей в блоге: 16
08.02.2016, 23:46
Обычно при тестинге заменяют команду rm на echo. Или если это нарушает ход
работы программы заменяют на команду mv /to/my/tmp/trash созданную временно
директорию вроде мусорной корзины. Я же и заострила внимание на второй строчке
как раз из за этого момента.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.02.2016, 23:46
Помогаю со студенческими работами здесь

Найти файлы по маске в заданном каталоге
Здравствуйте всем. На Virtual Box поставил Ubuntu. В ней выполняю лабораторную работу. Дано самостоятельное задание: "Поиск файлов...

Пакетный файл, предназначенный для подсчета файлов в каталоге, заданном определенным путем
Ребят помогите пожалуйста, я а этом как дерево... Задача: Пакетный файл, предназначенный для подсчета файлов в каталоге,...

В заданном каталоге определить, какие имена файлов есть жесткими ссылками на тот же файл
В заданном каталоге определить, какие имена файлов есть жесткими ссылками на тот же файл. Заранеей спасибо)

Из файлов в корневом каталоге на заданном устройстве выбрать файл с самым поздним временем создания
е). Из файлов в корневом каталоге на устройстве c: выбрать файл с самым поздним временем создания.

Сравнить файл в каталоге со всеми остальными файлами в этом каталоге, результат вывести в txt-файл
Здравствуйте! Подскажите, как сравнить файл в каталоге со всеми остальными файлами(в этом каталоге) и вывести результат в отдельный txt...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
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