Форум программистов, компьютерный форум, киберфорум
Shell, Bash
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/55: Рейтинг темы: голосов - 55, средняя оценка - 4.89
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320

Поиск файлов заданного размера в заданном каталоге (Bash)

13.03.2011, 18:30. Показов 10972. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задание :Написать скрипт для поиска файлов заданного размера в заданном каталоге (имя каталога задаётся пользователем в качестве третьего аргумента командной строки). Диапазон (мин.- мах.) размеров файлов задаётся пользователем в качестве первого и второго аргумента командной строки.

Правильно ли написано тут. Возникает ошибка: неизвестнй символ -c'

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#/bin/bash
files_found=`find $3type f –size +$1c –size -$2c`
for file_found in $files_found
do 
if  [ -d$file_found]
then
if  ! [[ -r$file_found]]
then
echo “Error1: каталог \”$file_found\” закрыт для чтения.”
fi
if  ! [[ -x  “$file_found]]
then
echo “Error2: каталог \”$file_found\” закрыт для выполнения.”
fi
echo `do –b $file_found`
fi
done
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.03.2011, 18:30
Ответы с готовыми решениями:

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

Поиск всех доступных файлов в заданном каталоге
всем доброго времени суток, вот столкнулся с такой проблемой. есть например любой каталог например диск "E:". в нем нужно...

Удаление из первого заданного каталога файлов, которые присутствуют и во втором заданном каталоге
Помогите пожалуйста выполнить задание: Разработать и выполнить командный файл (КФ), выполняющий удаление из каталога, заданного первым...

7
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
14.03.2011, 02:50
+${1}c
1
5 / 5 / 0
Регистрация: 29.04.2010
Сообщений: 88
18.03.2011, 18:29
+${1}c А что это за штука?
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
19.03.2011, 08:02
это первый аргумент $1, как любую переменную его можно перевести в вид ${1}
а дальше уже можно присоединять любую букву ${1}c

хотя проверил сейчас, для аргументов это, похоже, необязательно (переменные не могут начинаться с цифр)
Code
1
2
3
4
5
6
7
8
9
10
11
12
[guest@localhost ~]$ set a b c
[guest@localhost ~]$ echo $1
a
[guest@localhost ~]$ echo $1c
ac
[guest@localhost ~]$ echo ${1}c
ac
[guest@localhost ~]$ echo +$1c
+ac
[guest@localhost ~]$ 1a=3
bash: 1a=3: command not found
[guest@localhost ~]$
но вообще это важно
Code
1
2
3
4
5
6
7
[guest@localhost ~]$ b=1
[guest@localhost ~]$ ba=3
[guest@localhost ~]$ echo $bz
 
[guest@localhost ~]$ echo ${b}z
1z
[guest@localhost ~]$
Цитата Сообщение от zhenya.ya
Возникает ошибка: неизвестнй символ -c'
второй аргумент равен пустоте
нужно проверку всех аргументов сделать перед командой
похоже, третий тоже равен пустоте, но тогда find примет каталог по умолчанию (текущий), и скрипт будет работать, как будто всё окей
0
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
19.03.2011, 16:20  [ТС]
Думаю, так будет проще сделать мой код:

Bash
1
2
3
#!/bin/bash
find $3 -type f -size+$1c -size -$2c -printf " %p %s \n" 2>error.txt
cat error.txt|tr -d find:
Можно ли через консоль использовать "find" для моей задачи? Имею в виду что-то вроде: через find как-то здавать, скажем, каталог, где будут искаться файлы и задавать там же через find их рамеры?
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
20.03.2011, 12:45
-size+$1c - это должно быть раздельно

Цитата Сообщение от zhenya.ya
Можно ли через консоль использовать "find" для моей задачи?
можно сделать функцию, но она не так уж сильно будет отличаться от скрипта
0
2 / 2 / 2
Регистрация: 29.11.2009
Сообщений: 320
20.03.2011, 21:41  [ТС]
ну т.е. если я хочу через консоль задать место для поиска в нем файлов я могу написать, например:
find /home/stud/search_there ?
А дальше можно уже задавать, скажем, размер: find /home/stud/search_there -size +0c -size -200c ?
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
21.03.2011, 01:30
Code
1
2
3
4
[guest@localhost ~]$ func() { find $1 -type f -size +$2c -size -$3c -printf '%p %s\n'; }
[guest@localhost ~]$ func tmp 1000000 5000000
tmp/clips/dnb/metalheadz/ed_rush/ed_rush_westway.wmv 4745049
[guest@localhost ~]$
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
21.03.2011, 01:30
Помогаю со студенческими работами здесь

Поиск и вывод имен файлов с определенными атрибутами в заданном каталоге
Здравствуйте! Дали задание: "Поиск и вывод имен файлов с заданным(и) пользователем атрибутом(ами) в заданном пользователем каталоге"...

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

Поиск файлов заданного размера
Написать скрипт, находящий в заданном каталоге и всех его подкаталогах все файлы заданного размера. Диапазон (мин.- мах.) размеров файлов...

Чтение файлов, запись и дозапись в файл, поиск файлов в каталоге и поиск данных в файле
2. Создать файлы, в которых будут вмещаться строки с именами студентов и их средними балами. Каждый файл будет отвечать отдельной группе. ...

В заданном каталоге подсчитать число файлов
есть код программы на Dilphi7 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics,...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru