PDA

Показать полную графическую версию : [решено] Архивация каждого файла в отдельный архив


vadimiron
14-08-2007, 17:41
Мне нужно архивировать каждый файл в папке в отдельный архив.
Я смотрел man tar, но там такой опции вроде нету. Значит надо писать свой скрипт?, который проходит по каждому файла в заданной папке и архивирует его.
Есть уже готовый скрипт у когонибудь??

Знаю-вопрос ламерский, но мне самому лень сейчас разбираться :)

dmitryst
14-08-2007, 17:52
vadimiron, нету, но на перле можно быстро накалякать

1. берем список файлов из директории в массив
2. foreach - ем проходим по массиву, применяя exec("command_line")

Если не срочно, могу написать до выходных

must die
14-08-2007, 18:02
vadimiron,

Ну как-нибудь так:
find . -name \*.* -exec gzip -9 {} \;

dmitryst
14-08-2007, 18:16
must die, если это работает, я готов "снять шляпу" :)

vadimiron
14-08-2007, 18:20
must die,
A kak будет выглядить скрипт, которому можно передавать папку в качестве параметра?
Нужно какоето универсальное решение.

Насколько я понимаю вместо "." путь к папке писать??

dmitryst
14-08-2007, 18:27
Насколько я понимаю вместо "." путь к папке писать?? - полный путь

vadimiron
14-08-2007, 18:33
Ok, сенкс поюзаю - попробую

must die
14-08-2007, 19:11
vadimiron,


скрипт

#!/bin/bash
find $1 -name \*.* -exec gzip -9 {} \;


Работает
./script_name /home/user/dir_name

ruslandh
14-08-2007, 19:38
must die,
А скрипт будет работать, eсли в имени файла будут пробелы, а точки быть вообще не будет ? :)

vadimiron
14-08-2007, 23:45
а точки быть вообще не будет >>>
Ну с этим я справлюсь - можно же просто звёздочку поставить, тогда любой файл попадает под правило

must die
15-08-2007, 14:24
А скрипт будет работать, eсли в имени файла будут пробелы, а точки быть вообще не будет ?

Будет :)
find $1 -name \* -exec gzip -9 {} \;




© OSzone.net 2001-2012