URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5899
[ Назад ]

Исходное сообщение
"Как запаковать каждый файл отдельно ?"

Отправлено GTHack , 13-Ноя-06 07:34 
Столкнулся с проблемкой -
нужно в папке отдельно запаковать каждый файл не в один архив, а каждому файлу - свой.
т.е. получается, что то вроде цикла.

в шелл программировании пока ноль - но буду учиться
тут какой то конвеер типа ls | gzip нужно ? или шелл скрипт какой то ?

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

заранее благодарен


Содержание

Сообщения в этом обсуждении
"Как запаковать каждый файл отдельно ?"
Отправлено EL , 13-Ноя-06 09:08 
>Столкнулся с проблемкой -
>нужно в папке отдельно запаковать каждый файл не в один архив, а
>каждому файлу - свой.
>т.е. получается, что то вроде цикла.

именно "сжать"  - ' gzip * , а лучше gzip *.чтотутутебя ', или соядать архив ???


"Как запаковать каждый файл отдельно ?"
Отправлено GTHack , 13-Ноя-06 09:14 
создать архив каждому файлу
т.е было 1.txt 2.txt ... N.txt
на выходе 1.txt.gz 2.txt.gz ... N.txt.gz

"Как запаковать каждый файл отдельно ?"
Отправлено Dead Mustdie , 13-Ноя-06 09:09 
find . -type f -exec gzip -9 '{}' ';'

"Как запаковать каждый файл отдельно ?"
Отправлено GTHack , 13-Ноя-06 10:42 
>find . -type f -exec gzip -9 '{}' ';'

всё о.к. только он исходные файлы потёр - только архивы остались ...

где можно почитать про такие конструкции - чтоб самому научиться ?
допустим в этой констукции напрягает следующее  '{}' ';'
принцип работы вроде понятен - но это особенность find-а вроде ? (-exeс)

а еще способы есть ту же операцию сделать, но подругому ?
допустим вывод ls как то на gzip передать или
шелл скрипт который перебирает в цикле содержимое папки и по маске какое либо действие запускает ...


"Как запаковать каждый файл отдельно ?"
Отправлено pup , 13-Ноя-06 16:47 
>а еще способы есть ту же операцию сделать, но подругому ?
>допустим вывод ls как то на gzip передать или
>шелл скрипт который перебирает в цикле содержимое папки и по маске какое
>либо действие запускает ...

for i in *; do
   gzip $i
done

если я правильно понял вопрос, то глянь ещё на case -- это штука, так же как и for описана в info bash.
а приколы с find в `info finding\ files'


"Как запаковать каждый файл отдельно ?"
Отправлено Дениска , 13-Ноя-06 17:12 
>где можно почитать про такие конструкции - чтоб самому научиться ?
>допустим в этой констукции напрягает следующее  '{}' ';'
>принцип работы вроде понятен - но это особенность find-а вроде ? (-exeс)
"напрягает" ? почитать man find



"Как запаковать каждый файл отдельно ?"
Отправлено madskull , 13-Ноя-06 18:51 
>find . -type f -exec gzip -9 '{}' ';'

А че это вы здесь делаете?
gzip *
замечательно сам справится без всяких find'ов: и файлы по отдельности сожмет, и каталоги проигнорирует (по крайней мере, линуксовый).

а если надо баш поизучать, то в поиск: Bash Scripting Guide


"Как запаковать каждый файл отдельно ?"
Отправлено perece , 13-Ноя-06 19:37 
>>find . -type f -exec gzip -9 '{}' ';'
>
>А че это вы здесь делаете?
>gzip *
>замечательно сам справится без всяких find'ов: и файлы по отдельности сожмет, и
>каталоги проигнорирует (по крайней мере, линуксовый).
>
>а если надо баш поизучать, то в поиск: Bash Scripting Guide
если челу надо чтоб исходные остались, то gzip * не катит
for i in *
do gzip -c $i >$i.gz
done

\^P^/


"Как запаковать каждый файл отдельно ?"
Отправлено Dead Mustdie , 14-Ноя-06 14:00 
>>find . -type f -exec gzip -9 '{}' ';'
>
>А че это вы здесь делаете?

Рекурсивно с поиском по подкаталогам файлы жму ;)