LinuxForum.Fans
Тема

Нужен простейший скрипт

Автор: truebest 16 сообщений 4946 просмотров
#19968

С консолью я не очень еще дружу? поэтому прошу помощи
Нужен мне простой скрипт #/bin/sh который стандартными средствами системы смотрел содержимое определенной папки указанной в этом скрипте, и писал в файл желательно в таком порядке имя файла его размер имя файла и его размер и тд,

Я буду очень благодарен

#19970

Вывод содержимого каталога можно получить командой ls с различными параметрами.
Например, ls -l покажет список примерно в таком виде:

text
drwxr-xr-x  2 user       users       80 Июн 17  2009 www

Чтобы этот результат записать в файл надо в конц команды добавить >> /путь/к/файлу
В результате у нас должно получится вот что:

text
ls -l >> /home/user/listing.txt

и в файле listing.txt будет всё содержимое.
Эту команду вставляем в скрипт и радуемся.

#19972

Спасибо, имена файлов получаю
ls -1 >> /home/user/listing.txt

теперь осталось получить размер, размер в байтах, если сделать
du -a -b и как нибудь читать из созданного выше файла имена и потом типа через cat записывать размеры в файл

Подскажите что как

#19977

вообще-то ls -l выводит размер файла в байтах в 5-й колонке.
Чтобы заставит du посчитать размер каталога и выдать результат в байтах надо использовать параметр -bs, т.е.

text
du -bs /home/user
truebest написал:
ls -1 >> /home/user/listing.txt

ыыыыы.... не цифра один "1" как параметр, а прописная буква латинского алфавита "L" - "l" :)

#19979

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

text

Имя файла1
ЕгоРазмер1
Имя файла2
Его размер2

или на край так

text

Имя файла1
Имя файла2
ЕгоРазмер1
Его размер2

Кстати по поводу ls -1 попробуй, получиш имена файлов в каталоге вчистом виде,только имена, ls -l развернутая,

#19993

это как пример
ls -l | awk '{print $9, $5}'
можешь на 2 части разбить
ls -l | awk '{print $9}'
ls -l | awk '{print $5}'

потом соеденить и тд покури в строну awk + grep , инфы в интернете навалом :)

Удачи сделать лабораторную работу :)

#20005

все бы хорошо но awk вроде как не родной линуксовский, считается отдельным языком

#20007

truebest, О_о

#20013

ls это тоже не часть sh языка - это сторонняя программа.

#20016
truebest написал:
Кстати по поводу ls -1 попробуй, получиш имена файлов в каталоге вчистом виде,только имена, ls -l развернутая,

ключ -1 указывает команде ls на вывод имён файлов в одну колонку, без всяких там дополнительных атрибутов. визуально - как будто просто ls.

#20018

Точно встроен Ы, неправ сори

А как сделать чтобы было
Имя файла1
ЕгоРазмер1
Имя файла2
Его размер2

#20810

[offtop]
truebest,
# echo 'brain_enable="YES"' >> /etc/rc.conf
[/offtop]

Вам уже массу вариантов предложили, что не так?

#20813

... незнание параметров вещей стандартных которыми можно текст соскребсти, шелла и прочей хни...

#27208
truebest написал:
А как сделать чтобы было
Имя файла1
ЕгоРазмер1
Имя файла2
Его размер2

Добавь в указанную ранее команду \n. Выгдядеть все это будет вот так

text
ls -l | awk '{print $9,"\n",$5}'
#27261
i2ks написал:
truebest, О_о

А в каком смысле O_o? Задание - средствами shell, т.е. надо использовать array
и пожалуйста, выводить любую часть `ls -l $var`.

Пётр.

#27361

2truebest
я бы посоветовал для начала понять что такое структура катологов и т.д.

P.S я бы посылал лесом тех нубов которые хотят готового решения для копи паста в свою хз там какую лабораторную работу.. и напрочь отказываются хоть что то понять из того что уже предложили.

Войдите или зарегистрируйтесь, чтобы ответить.