Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/showflat.php?Number=742214&src=alt&showlite=l
Дата изменения: Unknown
Дата индексирования: Tue Feb 26 10:18:13 2013
Кодировка: Windows-1251
Массовый unzip - Public forum of MSU united student networks
Alt >> Hard&Soft.Linux

Страницы: 0 | (3) | 20 | показать все | след. страница
bmv : Re: Массовый unzip  [re:alepar]   20.12.2008 21:55    | Reply | Edit |
-2
В ответ на:

А шелл не устраивает? find | xargs? etc



Меня устариват, а человека которому я буду все это говорить наверняка нет. До заклинателя начального уровня ему еще далеко.
Требуется что-то в пределах стандартной unix-парадигмы "программа * " все.



bmv   [re:unkulunkulu]   20.12.2008 21:57    | Reply | Edit |
2
В ответ на:

unzip \*.zip




Вот это самое ТО. :D

bmv   [re:unkulunkulu]   20.12.2008 22:01    | Reply | Edit |
3
В ответ на:

unzip \*.zip




Черт, я это в мане нашел. В самом конце "маленьким шрифтом". :grin:

unkulunkulu   [re:bmv]   20.12.2008 22:04    | Reply | Edit |
2
Это часто случается, что у прог есть собственный механизм обработки wildcards, иногда стоит проверять =)

blind   [re:unkulunkulu]   21.12.2008 10:39    | Reply | Edit |
1
В ответ на:

$ ls *.zip|xargs -n 1 unzip



про пробелы забыл

unkulunkulu   [re:blind]   21.12.2008 10:53    | Reply | Edit |
0
ls -Q помогает, да, не подумал

blind   [re:unkulunkulu]   21.12.2008 10:58    | Reply | Edit |
-1
изврат. лучше xargs -d '\n' а еще лучше find

Jerry   [re:blind]   21.12.2008 11:02    | Reply | Edit |
1
Я за find
Переводы строк в названиях файлов тоже встречаются

green   [re:unkulunkulu]   21.12.2008 11:13    | Reply | Edit |
4
Quote:

$ unzip \*.zip



Ну это уже блядство, собственный разбор wildcard в *nix. А если файл со звездочкой будет? :(
Вообще если нужен унзиппер, который несколько файлов принимает, то можно написать простейший скрипт-оболочку типа:
unzipall:


#!/bin/bash
while [[ $# -gt 0 ]]; do unzip "$1"; shift; done





Azeff   [re:green]   21.12.2008 11:33    | Reply | Edit |
-2
я тут недавно, расскажите, что сие означает?
В ответ на:

[ $# -gt 0 ]




maloi   [re:Azeff]   21.12.2008 11:36    | Reply | Edit |
3
man bash
$# - количество аргументов к команде, изменяется после команды shift.
-gt - больше, чем
0 - ноль :)
[[ ... ]] - условное выражение


Лисперы после смерти становятся смайликами.

green   [re:Azeff]   21.12.2008 11:45    | Reply | Edit |
5
Quote:

я тут недавно, расскажите, что сие означает?



Неправда, давно уже тут пишешь! :)

vozbu   [re:green]   21.12.2008 12:11    | Reply | Edit |
3
В ответ на:

Неправда, давно уже тут пишешь!



Тогда значит "я тут медленно".

unkulunkulu   [re:green]   21.12.2008 12:34    | Reply | Edit |
0
Quote:


Ну это уже блядство, собственный разбор wildcard в *nix. А если файл со звездочкой будет? :(




Найдено следующее решение =)))
code:
unzip '[*].zip'


Yorik   [re:unkulunkulu]   21.12.2008 19:37    | Reply | Edit |
0
о боже!!! а что, если файл будет с квадратными скобочками?!

unkulunkulu   [re:Yorik]   21.12.2008 22:59    | Reply | Edit |
0
Да вы достали, в этом случае шелл-скрипт и find с -print0 тоже лесом пойдут, если тут этого еще никто не заметил, и все решения, которые были написаны пусть и работают с файлами, в которых есть переводы строк, со звездочками тоже неправильно сработают.

Ключ в unzip (Info-Zip), отрубающий к чертям встроенный globbing найти не удалось.

и вообще вот =))
code:
$ ls [*].zip *.zip t.zip $ unzip \*.zip Archive: *.zip Archive: [*].zip Archive: t.zip 3 archives were successfully processed. $ find ./ -name \*.zip -print0|xargs -n1 -0 unzip Archive: ./*.zip Archive: ./[*].zip Archive: ./t.zip 3 archives were successfully processed. Archive: ./*.zip Archive: ./t.zip $ unzip '[*].zip' Archive: *.zip $ unzip '[[]*].zip' Archive: [*].zip


unkulunkulu   [re:unkulunkulu]   22.12.2008 00:27    | Reply | Edit |
0
Может кто-нибудь ответит что не так, а то минус, минус, а сами ни одного решения так и не предложили.

Yorik   [re:unkulunkulu]   22.12.2008 01:12    | Reply | Edit |
0
да не парься, все шутят.
надеюсь, везде, где вместо чего угодно, подразумеваются регулярки, в этих самых регулярках работает коммент по "\".


unkulunkulu   [re:Yorik]   22.12.2008 01:14    | Reply | Edit |
1
Quote:

да не парься, все шутят.
надеюсь, везде, где вместо чего угодно, подразумеваются регулярки, в этих самых регулярках работает коммент по "\".



В unzip это неверно, я же написал нашлось решение с квадратными скобками.
code:
$ unzip \\*.zip unzip: cannot find or open \*.zip, \*.zip.zip or \*.zip.ZIP.


Вот, а если хочется написать именно через find, то пожалуйста:
code:
$ ls *.zip t t.zip t?t.zip t.zip [*].zip *.zip $ find ./ -name \*.zip -print0|sed -e 's/[*{?\[]/[&]/g'|xargs -0 -n1 unzip Archive: ./*.zip Archive: ./[*].zip Archive: ./t.zip Archive: ./t t.zip Archive: ./t t.zip
Знак вопроса - это пресловутый перевод строки.

botWi   [re:unkulunkulu]   22.12.2008 17:57    | Reply | Edit |
-3
хех
чуваки с find налажали :)

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

Top | след. страница