Подробнее, пожалуйста. Что говорит на первую из приведенных команд? (Хотя лучше *.zip, конечно.)Пока ничего не вышло.
Составляем скрипт (разнообразные вопросы по утилитам)
Модератор: Модераторы разделов
Re: Составляем скрипт
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Re: Составляем скрипт
[...tmp]$ unzip ../download/*zip
Archive: ../download/0.4.8a_modpack.zip
caution: filename not matched: ../download/012Goldenlines.zip
caution: filename not matched: ../download/EX951F.zip
caution: filename not matched: ../download/John_Wiley_And_Sons_501_Web_Site_Secrets_Feb_2004.zip
caution: filename not matched: ../download/LeoDocs-4.3-a4.zip
caution: filename not matched: ../download/PassReminder-GTK-0.5.zip
caution: filename not matched: ../download/PassReminder-src-0.5.zip
caution: filename not matched: ../download/PassReminder_GTK-0.6.1.zip
.....
Re: Составляем скрипт
по простому:
ls *.zip | xargs unzip
ls *.zip | xargs unzip
Re: Составляем скрипт
$ ls *.zip | xargs unzip
Archive: vl_01.zip
caution: filename not matched: vl_02.zip
caution: filename not matched: vl_03.zip
caution: filename not matched: vl_04.zip
caution: filename not matched: vl_05.zip
caution: filename not matched: vl_06.zip
caution: filename not matched: vl_07.zip
caution: filename not matched: vl_08.zip
caution: filename not matched: vl_09.zip
caution: filename not matched: vl_10.zip
caution: filename not matched: vl_11.zip
....
Re: Составляем скрипт
Код: Выделить всё
for i in `ls -1`; do unzip `echo $i`; done;
Ушёл навсегда. В личку не заглядываю.
Re: Составляем скрипт
или так, или
find path -name \.zip -exec unzip {} \;
или
find path -name \.zip | xargs unzip
ls - не фильтр, и потому не работает, по каналу от нее передается текстовый список файлов, а не имена файлов как аргументы следующей команды
Re: Составляем скрипт
Действительно, find проще... Не подумал.
Ушёл навсегда. В личку не заглядываю.
Re: Составляем скрипт
Очень сожалею но ничего не делает и ничего не выводит в консоль (зипы в каррент директории), а
выводит хелп от unzip.
А вот работает.
Молодец StraNNicK
Код: Выделить всё
find ./ -name \.zip -exec unzip {} \;
Код: Выделить всё
find ./ -name \.zip | xargs unzip
А вот
Код: Выделить всё
for i in `ls -1 *zip`; do unzip `echo $i`; done;
Молодец StraNNicK
Re: Составляем скрипт
> Молодец StraNNicK
:megalol: :megalol: :megalol: :megalol: :new_megalol: :new_megalol: :new_megalol: :lol: :lol: :lol:
ах да... привлекло название темы - смеялся
:megalol: :megalol: :megalol: :megalol: :new_megalol: :new_megalol: :new_megalol: :lol: :lol: :lol:
ах да... привлекло название темы - смеялся
Molchanov Alexander (aka Xor)
*offtopic* - ololo!
*offtopic* - ololo!
Re: Составляем скрипт
Не совсем так:find path -name \.zip -exec unzip {} \;
find path -name "*.zip" -exec unzip {} \;
Или лучше даже так:
find path -iname "*.zip" -exec unzip {} \;
Но это всё же не совсем то, что вариант Странника, т.к. имелись ввиду всё же zip-файлы в текущем каталоге, а не во всех подкаталогах.
Второй же вариант (с xargs) не сработает вообще, т.к. там опять же получится "unzip file1 file2 ...".
P.S. Вот что бывает, когда программа нестандартно обрабатывает аргументы командной строки...
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Re: Составляем скрипт
В общем возникла такая проблема, не могу очистить директории, в которых расплодилось большое количество файлов.
если дать команду rm * внутри, то выдаст что-то типа
www# rm *
/bin/rm: Argument list too long.
если дать команду на удаление дирректории, то либо скажет
www# rm -r tmp/
rm: fts_read: Cannot allocate memory
либо вроде как начнет удалять.. но процесс этот чрезвычайно медленный, и за час ожидания мне не удалось получить хоть какой-то результат.
В общем что можно поделать в этой ситуации?
если дать команду rm * внутри, то выдаст что-то типа
www# rm *
/bin/rm: Argument list too long.
если дать команду на удаление дирректории, то либо скажет
www# rm -r tmp/
rm: fts_read: Cannot allocate memory
либо вроде как начнет удалять.. но процесс этот чрезвычайно медленный, и за час ожидания мне не удалось получить хоть какой-то результат.
В общем что можно поделать в этой ситуации?
Re: Составляем скрипт
Вот вам навскидку пара вариантов:
Код: Выделить всё
cd tmp/; ls -a | grep -v ^.$ | grep -v ^..$ > ~/filelist; while read i; do rm -vf $i; done < ~/filelist; rm ~/filelist
Код: Выделить всё
find tmp/ -type f -exec rm -vf {} \;
Re: Составляем скрипт
Спс, я попробую.. но второй в общем тоже выдает cannot allocate memory
А первый.. что ж .. в процессе
У меня в связи с этим такой еще вопрос появился.. Ведь по идее директория содежрит инфу о файлах, которые в ней лежат. Т.е если ее убить, то все файлы умрут автоматически, без всяких там проверок и прочего. можно такое как-нибудь реализовать?
А первый.. что ж .. в процессе
У меня в связи с этим такой еще вопрос появился.. Ведь по идее директория содежрит инфу о файлах, которые в ней лежат. Т.е если ее убить, то все файлы умрут автоматически, без всяких там проверок и прочего. можно такое как-нибудь реализовать?
Re: Составляем скрипт
Можно, но не нужно, ибо слишком опасно.
P.S. По поводу "cannot allocate memory": сколько модулей памяти у вас и каков их объем, кто их производитель (производители)? Сдается мне, что надо бы вам погонять memtest на своей машине...
P.S. По поводу "cannot allocate memory": сколько модулей памяти у вас и каков их объем, кто их производитель (производители)? Сдается мне, что надо бы вам погонять memtest на своей машине...
Re: Составляем скрипт
find -delete
Re: Составляем скрипт
cd tmp/; ls -a | grep -v ^.$ | grep -v ^..$ > ~/filelist; while read i; do rm -vf $i; done < ~/filelist; rm ~/filelist
ls -a | grep -v ^.$ | grep -v ^..$ -- это ведь то же самое, что и ls -A или я что-то путаю? И ls -A | while read тоже, по-моему, можно сказать.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Re: Составляем скрипт
Насчет ls -A вы ничего не путаете, это меня память подвела - крайне редко пользуюсь этой опцией (да практически и не пользуюсь), вот и забываю о ее существовании, а покопаться в man ls, каюсь, поленился. И со вторым замечанием согласен - писал, что называется, "быстро и грязно", а в таких случаях у меня, бывает, случаются рецидивы чайничества, когда чешешь правое ухо левой рукой через голову (и хорошо еще, что через голову, а не через что-нибудь другое ).
Re: Составляем скрипт
Ну, это понятно Я ведь не в качестве замечания, а для красоты.Насчет ls -A вы ничего не путаете, это меня память подвела - крайне редко пользуюсь этой опцией (да практически и не пользуюсь), вот и забываю о ее существовании, а покопаться в man ls, каюсь, поленился. И со вторым замечанием согласен - писал, что называется, "быстро и грязно", а в таких случаях у меня, бывает, случаются рецидивы чайничества, когда чешешь правое ухо левой рукой через голову (и хорошо еще, что через голову, а не через что-нибудь другое ).
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Re: Составляем скрипт
как сделать исполняемый файл, как bat в виндах? какое расширение должно быть? куда его положить чтобы отовсюду можно было его запускать? как запускать (как команду, или ./xxx или yyy xxx или еще как)?
Re: Составляем скрипт
1) написать
2) пофиг, обычно никакого, если хочешь - можешь поставить sh (shell script)
3) Если всем, то лучше в /usr/local/bin, только себе - ~/bin/
4) Если 3, то можно просто, в противном случае - с путем (абсолютным или относительным), из текущей директории: ./<имя файла>
Для работы нужно поставить атрибут "исполняемый": chmod +x <имя файла>
2) пофиг, обычно никакого, если хочешь - можешь поставить sh (shell script)
3) Если всем, то лучше в /usr/local/bin, только себе - ~/bin/
4) Если 3, то можно просто, в противном случае - с путем (абсолютным или относительным), из текущей директории: ./<имя файла>
Для работы нужно поставить атрибут "исполняемый": chmod +x <имя файла>
-
- Сообщения: 119
- ОС: Debian Squeeze
Re: Составляем скрипт
Всем привет!
Есть текстовый файл (допустим какой-нибудь log)
с огромным количеством строк
Подскажите, как удалить все строки, содержащие
2 или 3 известные комбинации символов.
И еще - как поменять времена создания, доступа и
модификации файла.
При этом использовать штатные стредства, т.е. из командной строки bash, в mc или в vi.
Заранее благодарен всем.
Есть текстовый файл (допустим какой-нибудь log)
с огромным количеством строк
Подскажите, как удалить все строки, содержащие
2 или 3 известные комбинации символов.
И еще - как поменять времена создания, доступа и
модификации файла.
При этом использовать штатные стредства, т.е. из командной строки bash, в mc или в vi.
Заранее благодарен всем.
Re: Составляем скрипт
> И еще - как поменять времена создания, доступа и модификации файла.
touch
touch
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог
Re: Составляем скрипт
madskull, grep-ом я вижу все строки, а как сделать, чтоб они удалились
из файла?
Можно полный синтаксис строки?
Вопрос все-таки в разделе для чайников ))
sash-kan
а touch у меня выставляет текущее время, а не то, что я хочу
из файла?
Можно полный синтаксис строки?
Вопрос все-таки в разделе для чайников ))
sash-kan
а touch у меня выставляет текущее время, а не то, что я хочу
Re: Составляем скрипт
> а как сделать, чтоб они удалились из файла?
1. запихнуть вывод в другой файл. удалить, переименовать.
2. воспользоваться sed-овской опцией -i (sed -i ...)
1. запихнуть вывод в другой файл. удалить, переименовать.
2. воспользоваться sed-овской опцией -i (sed -i ...)
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
при сбоях форума см.блог