Bash: распаковка в цикле одной строкой
Требуется:
просто распаковать их (tar -jxvf * не пашет)
Думал подключить find и/или grep, но не понял, как.
Где можно почитать именно об этом? В справочнике по башу? Какой бы посоветовали, а то их немало.
Общая задача - распаковать архивы и сделать их deb-пакетами.
Кстати, в каком файле надо добавить строки типа VARIABLE=VALUE, чтобы они постоянно объявлялись при начала сессии юзверя (помнится, что какой-то из хомяковой директории, но ничего особого не нашел)
Кстати, есть гуевское приложение для создания deb-пакетов?
Цитата: SkyMаn
Есть несколько bz2-файлов.
Требуется:
просто распаковать их (tar -jxvf * не пашет)
Думал подключить find и/или grep, но не понял, как.
Где можно почитать именно об этом? В справочнике по башу? Какой бы посоветовали, а то их немало.
Требуется:
просто распаковать их (tar -jxvf * не пашет)
Думал подключить find и/или grep, но не понял, как.
Где можно почитать именно об этом? В справочнике по башу? Какой бы посоветовали, а то их немало.
может пойдет
tar -jxvf `ls *.bz2`
?
Неа, не подошло. И с прямыми кавычками - тоже.
Цитата: SkyMаn
Неа, не подошло. И с прямыми кавычками - тоже.
прямые кавычки - это кавычки, а обратные - это получение вывода команды.
понял в чем прикол - tar не приемлет несколько архивов в качестве параметра. как обойтись - подумаю, отпишусь.
Код:
$ for FILE in `ls *.bz2`; do tar -jxvf $FILE; done
вариант 2:
Код:
$ find ./ -name *.bz2 -exec tar -jxvf {} \;
Код:
for file in *.tar.bz2; do tar -xvjf $file; done
ты быстрее оказался.
надо страницы обновлять если они ьолее 5минут открыты, перед тем как постить.
У меня есть n-файлов мназванием xxxxxNN.xx NN - это номер например от 01 до 26.
мне надо эти файлы переименовать в yyyyNN.yy
как это сделать одной командой?
Цитата: squirL
вариант 1:
вариант 2:
Код:
$ for FILE in `ls *.bz2`; do tar -jxvf $FILE; done
вариант 2:
Код:
$ find ./ -name *.bz2 -exec tar -jxvf {} \;
йолки! все гораздо проще :) а я, сделал через хитро закрученную ж**у :D:
Код:
bash -c "`ls *.bz2 | awk '{print "tar -jxvf " $1}'`"
Цитата:
У меня есть n-файлов мназванием xxxxxNN.xx NN - это номер например от 01 до 26.
мне надо эти файлы переименовать в yyyyNN.yy
уточни плиз, yyyy и xxxx - это у тебя одинаковые буквы все время?
типа файл:
ааааа01.аа?
нет, это одинаковая последовательность букв. например, [Eclipse]Claymore01.ass, [Eclipse]Claymore02.ass ... а мне надо получить Claynore - 01.ass Claymore - 02.ass ... и так далее.
Кстати, в каком файле надо добавить строки типа VARIABLE=VALUE, чтобы они постоянно объявлялись при начала сессии юзверя (помнится, что какой-то из хомяковой директории, но ничего особого не нашел)
[/QUOTE]
кстати, это часом не ~/.bashrc?
На счет рабочести, то не работает только твой, squirL, вариант №2 (№1 - рабочий). Говорит, мол, "find: paths must precede expression"
Варианты всех остальных работают на ура и понятны мне. Не совсем допер логику и алгоритм работы последнего варианта ~ArchimeD~'а (тот, что с awk). Какая роль awk?
И какое пособие посоветовали бы вы (может, по котором учились сами) по башу. Кстати, а разве баша не хватает, что надо юзать еще и перл? И можно ли вместо перла сделать замену на php (коммандная строка)?
И наконец. Я тоже думал, о ~/.bashrc, проверю сегодня. Но это помойму тогда, когда ты входишь в терминал, а хотелось бы, чтобы действовало не только для терминальный сессий, но и для гуевых. Или это влияет глобально?
руководство - http://www.opennet.ru/docs/RUS/bash_scripting_guide/
Цитата: SkyMаn
И наконец. Я тоже думал, о ~/.bashrc, проверю сегодня. Но это помойму тогда, когда ты входишь в терминал, а хотелось бы, чтобы действовало не только для терминальный сессий, но и для гуевых. Или это влияет глобально?
во фряхе еще есть /etc/login.conf и ~/.login_conf где можно прописать setenv. правда, не уверен, что в твоем случае оно подойдет
Цитата: SkyMаn
Не совсем допер логику и алгоритм работы последнего варианта ~ArchimeD~'а (тот, что с awk). Какая роль awk?
AWK:
Цитата:
AWK — интерпретируемый скриптовый C-подобный язык построчного разбора и обработки входного потока (например, текстового файла) по заданным шаблонам.
в моем случае, он просто вставляет перед аргументом (file.bz2) строку "tar -jxvf " и затем все это в качестве параметра передается bash на выполнение
Спасибо. Пошел читать руководство.