lwilis 17.07.2009 02:13
Tips & tricks — Поиск файла в куче архивов
Ситуация.Вы знаете, что нужный файл лежит в одном из архивов.
Архивов много. Я предлагаю искать файл таким образом:
1 |
aap@pg:tmp$ find /path/to/dir/ -name "*tar.gz"|while read i ; do tar tzf "$i"|grep FILENAME && echo "$i" ; done
|
указали путь к архивампока список с архивами не пустраспаковываем содержание архива (не содержимое)фильтруем содержание на предмет подстроки FILENAMEв случае успеха, выводим имя архиваPROFIT! (дань моде)
фишка хорошая =) плюсанул , но я бы хотел видеть побольше фишек в топике (но это мое имхо)
Так и думал. Опять-таки, если имя архива с пробелом, то tar tf ругается:
Есть у кого мысли, как попроще заставить его их экранировать?
Невозможно open: Нет такого файла или каталога
и пропускает егоЕсть у кого мысли, как попроще заставить его их экранировать?
Да стандартно всё:
find /path/to/dir/ -name "*tar.gz" | while read i ; do tar tzf "$i" | grep FILENAME && echo $i ; done
Кавычки рулят :)
во-первых, имена файлов с пробелами - дурной тон.
во-вторых, Minoru предложил решение.
Сейчас поправлю у себя.
во-вторых, Minoru предложил решение.
Сейчас поправлю у себя.
Хинт да, неплохой. Теперь бы ещё придумать для него имечко, воткнуть в скрипт и кинуть в ~/scripts — будет вообще зашибись :)
У меня конверт тэгов у треков в utf8, и показ своего внешнего IP =)
Да куча всякой мелюзги, в основном — одострочники или скрипты с примитивной логикой, позволяющие работать быстрее или не отвлекаться на мелочи. Ну если интересно…
debupdate — обновляет систему
extdict — надстроечка над dict, консольным толковым словарём
Идея вообще-то не моя, это иностранный знакомый поделился, но реализацию сочинял сам. Английский (ну, почти английский :) мессаг я не знаю зачем писал, я-то до сих пор помню, как этим пользоваться :)
fatmount — этой командой я обычно монтирую флешку, телефон и плеер
flac2mp3.pl — этим скриптом я конвертирую флак в MP3'шки для плеера
mkfilelist — это для составления списка файлов в директориях (рекурсивно). Подробности описывал тут
mpdupdate — это запускаю после каждого добавления новой музыки в ~/audio/music
sdbmount — пожалуй, самый невостребованный скрипт, его пора бы удалить. Юзался для монтирования винта сестры
Сейчас перечитал их, уже есть что поправить. Например, вместо баша вполне покатил бы sh, а flac2mp3 реализуется однострочником на bash'е. Как видишь, у меня даже были порывы сделать систему понятной другим (то есть писал описания к скриптам). Остальное создавалось на скорую руку, в процессе работы, и потому описаний не содержит. Английский мне тоже не мешало бы поправить…
debupdate — обновляет систему
#!/bin/bash
# This script update system via aptitude
# Written by Minoru (eual dot jp at gmail dot com)
# Last modified Fri, 13 Mar 2009 18:09:46 +0200
# Sudo su is more securely than su, because you even don't enter root's password
# We really need su because sudo doesn't have -c option
sudo su -c "aptitude update && aptitude -y safe-upgrade"
extdict — надстроечка над dict, консольным толковым словарём
Идея вообще-то не моя, это иностранный знакомый поделился, но реализацию сочинял сам. Английский (ну, почти английский :) мессаг я не знаю зачем писал, я-то до сих пор помню, как этим пользоваться :)
#!/bin/bash
#
# extdict BASH script
# Written by Minoru (eual dot jp dog gmail dot com)
# Idea by Raging_Hog (you may find him at irc://irc.greenode.net/#linuxtalk)
# When you read a lot and need to check words by dict often, it's stupid to type "dict word" all the time. That's why I wrote this script. You just need to run this script, then type word and press Enter ??? and read definition. If you dislike less, you may change it to anything else.
#
# Small USAGE note + copyright
echo "Hi!"
echo "It's simple addition to dict written by Minoru (idea by Raging_Hog)."
echo "You type word, press Enter and then read dict's definition of this word in less program. After it press q key (to exit less) and type next word. You can use any features of less (such as search by pattern and scroll back) and dict (such as get definitions of few words by one reqest to program and so on). To exit script press Ctrl+C combination."
echo "Have fun!"
echo
# Let's do real work!
while true
do
read word
dict $word | less
done
fatmount — этой командой я обычно монтирую флешку, телефон и плеер
#!/bin/bash
# Get UID
#uid=`id | sed "s/ /\n/g" | grep uid | sed s/uid=// | sed "s/(.*)//"`
uid="minoru"
# Get GID
#gid=`id | sed "s/ /\n/g" | grep gid | sed s/gid=// | sed "s/(.*)//"`
gid="minoru"
if < "`mount | grep mnt`" != "" >; then
echo "/mnt is busy!"; else
sudo mount -t vfat -o uid=$uid,gid=$gid,fmask=133,dmask=022 /dev/sdb1 /mnt
echo "Device sucessfuly mounted!"
fi
flac2mp3.pl — этим скриптом я конвертирую флак в MP3'шки для плеера
#!/usr/bin/perl
use strict;
open(NAMES, "ls *.flac|");
my ($flac_name, $mp3_name);
while(defined($flac_name = <NAMES>)) {
chomp($flac_name);
$mp3_name = $flac_name;
$mp3_name =~ s/flac$/mp3/;
system("mkdir mp3; flac --decode --stdout \"$flac_name\" | lame -m j --vbr-new -B 128 - \"mp3/$mp3_name\"");
}
close(NAMES);
mkfilelist — это для составления списка файлов в директориях (рекурсивно). Подробности описывал тут
#!/bin/bash
curdir=$(pwd | sed 's/\//\\\//g') && find -type f -print | sort -g | sed "s/./$curdir/"
mpdupdate — это запускаю после каждого добавления новой музыки в ~/audio/music
#!/bin/bash
# Kill MPD
mpd --kill
# Update DataBase
mpd --create-db
# Start MPD
mpd
# Start Playing
mpc play
sdbmount — пожалуй, самый невостребованный скрипт, его пора бы удалить. Юзался для монтирования винта сестры
#!/bin/bash
sudo mount -t ntfs-3g /dev/sdb1 /media/C
sudo mount -t ntfs-3g /dev/sdb2 /media/D
sudo mount -t ntfs-3g /dev/sdb3 /media/E
Сейчас перечитал их, уже есть что поправить. Например, вместо баша вполне покатил бы sh, а flac2mp3 реализуется однострочником на bash'е. Как видишь, у меня даже были порывы сделать систему понятной другим (то есть писал описания к скриптам). Остальное создавалось на скорую руку, в процессе работы, и потому описаний не содержит. Английский мне тоже не мешало бы поправить…
Делать комменты в собственных скриптах - это, конечно, очень хорошо, но не поражает; а вот "шапки" - поразили. Хороший пример новичкам.
а шабки - это имеются ввиду те самые #!/bin/bash? :)
Я как-то всегда думал что без них может и не заработать срипт :P А так, да, полезные штуки =)
Я как-то всегда думал что без них может и не заработать срипт :P А так, да, полезные штуки =)
Вероятно, masai говорил о тех шапках, где я вкратце описывал, что делает скрипт (они расположены между sha-bang и непосредственно кодом).
Не так давно решил по религиозным соображениям отказаться от mc, многие вещи пока вызвают затруднения :)