Názory k článku
Hrátky z řádky: find to najde
LDP
celé vlákno(treba zrovna na rootu je ve vice vydanich: http://knihy.root.cz/kniha/linux-dokumentacni-projekt-4-vydani/)
Cykly
celé vláknofor i in `find *`; do echo $i; done;
Například přejmenování všech nalezených souborů, či nahrazení řetězce ve všech nalezených a podobné problémy se řeší snáze.
Občas může být užitečné předefinovat proměnnou prostředí IFS, kterou 'for' používá pro oddělení jednotlivých prvků seznamu.
Re: Cykly
celé vlákno
find ~ "*" | while read l
do
# a tady si muzu delat co chci ;o)
echo $l
done
Re: Cykly
celé vláknoRe: Cykly
celé vláknoroot@w4skkosy1000169:~/tmp/xxx$ ls | wc -l
50000
v cykle:
date; for i in $(find . -type f -size 0); do rm $i; done; date
Mon Apr 14 15:22:05 CEST 2008
Mon Apr 14 15:25:56 CEST 2008 - mazanie trvalo 3:51s
cez find -exec:
date; find . -type f -size 0 -exec rm {} \;; date
Mon Apr 14 15:30:44 CEST 2008
Mon Apr 14 15:33:07 CEST 2008 - zmazane za 2:23s
a nakoniec cez xargs:
date; find . -type f -size 0 | xargs rm; date
Mon Apr 14 15:38:04 CEST 2008
Mon Apr 14 15:38:05 CEST 2008 - zmazane za 1s :)
skusal som aj kopirovanie, podobny rozdiel.
Re: Cykly
celé vláknotime ls /etc
Re: Cykly
celé vláknoroot@w4skkosy1000169:~/tmp/xxx$ time find . -type f -size 0 -exec rm {} \+
real 0m1.358s
user 0m0.108s
sys 0m1.224s
Zda sa ze je to to iste ako xargs, vdaka za typ :)
Re: Cykly
celé vlákno
-exec utility [argument ...] {} +
Same as -exec, except that ``{}'' is replaced with as many path-
names as possible for each invocation of utility. This behaviour
is similar to that of xargs(1).
Mereni jsem ale neprovadel
RE: Hrátky z řádky: find to najde
celé vláknoHledani stringu
celé vláknofind . -name "*C" -exec grep -ivH hledanyvyraz {} \;
neni to asi uplne nejkratsi (nebo ano?), ale clovek si zvykne.
Casto chci videt fily, co jsem zmenil pred rekneme 3mi dny - kvuli synchronizaci
find $HOME/Adr/ -type f -ctime -3 | xargs ls -lth
postupnou zmenou casu zjistim, od ktereho mista musim synchronizovat, nebot vystup radim
podle data...
Re: Hledani stringu
celé vláknoPokud hledate ve vsech *C souborech nejaky hledanyvyraz, tak ja bych to resil takhle:
grep -i hledanyvyraz *C
Re: Hledani stringu - ooops
celé vláknojednak tam nema byt invert u grep (-v)
a jednak xargs ls -ltrh to udela pouze, pokud
find neco
najde
sorry
-delete
celé vlákno$ find / -name "*.bak" -exec rm -f {} \;
nahradit
$ find / -name "*.bak" -delete;
Re: -delete
celé vlákno-delete je asi o trosku bezpecnejsi, viz. manual
find datum_od datum_do
celé vláknoRe: find datum_od datum_do
celé vlákno____________________________________
#!/bin/bash
f1=`mktemp`
f2=`mktemp`
find . -type f -newermt "$1" > $f1
find . -type f -newermt "$2" > $f2
diff f1 f2 | grep '^<' | cut -c 3-
rm -rf $f1 $f2
____________________________________
compare '2 weeks ago' '1 week ago'
Re: find datum_od datum_do
celé vláknoRe: find datum_od datum_do
celé vláknoNovsi nez 5 dni a (AND) starsi nez 3 dny,
zas tak neschudne mi to nepride.
Re: find datum_od datum_do
celé vláknoa=DATE_TO_DAYS($1)
b=DATE_TO_DAYS($2)
find . -type f -NEWERTHAN $a --and -type f -OLDERTHAN $b > $f1
Re: find datum_od datum_do
celé vláknoRe: find datum_od datum_do
celé vláknoa=$((($(date "+%s")-$(date -d "$1" "+%s"))/24/3600))
b=$((($(date "+%s")-$(date -d "$2" "+%s"))/24/3600))
find . -type f -NEWERTHAN $a --and -type f -OLDERTHAN $b
RE: Hrátky z řádky: find to najde
celé vláknofind . -type d -maxdepth 1 ==> find . -maxdepth 1 -type d
xargs
celé vláknoJinak díky za zajímavé počtení.
Re: xargs
celé vlákno-n number
Set the maximum number of arguments taken from standard input for
each invocation of utility....
... The current default value for number is 5000.
Re: Hrátky z řádky: find to najde
celé vláknoAhoj, potreboval bych poradit ohledne vyhledavani v bashi. Pisu skript, ktery v zadanem adresari a jeho podadresarich identifikuje skripty a vypise jejich cestu + nazev skriptu. Vyhledani skriptu by se melo proves pres vyhledani nazvu skriptu na prvnim radku (napr.: "#!/bin/bash" nebo perl,awk,...)
napr.: pokud zadam adresar "script" vypise muj bashovsky skript toto:
/home/my/script/aaa.sh bash
/home/my/script/first/bbb.pl perl
/home/my/script/second/ccc.sh bash
Zatim sem se dostal k tomuhle:
find $nazev_adresare -exec grep -H -l "bash" '{}' \;
- tohle ovsem nevyhledava pouze na prvni radku takze bych do toho potreboval nejak implementovat "| head -n 1" bohuzel nemuzu prijit na to jak?
- navic bych chtel aby to vypsalo i typ skriptu nejen cestu k souboru jak je videt v prikladu
Pokud byste meli nejakou radu diky
find-grep skript
celé vláknoAhoj, potreboval bych poradit ohledne vyhledavani v bashi. Pisu skript, ktery v zadanem adresari a jeho podadresarich identifikuje skripty a vypise jejich cestu + nazev skriptu. Vyhledani skriptu by se melo proves pres vyhledani nazvu skriptu na prvnim radku (napr.: "#!/bin/bash" nebo perl,awk,...)
napr.: pokud zadam adresar "script" vypise muj bashovsky skript toto:
/home/my/script/aaa.sh bash
/home/my/script/first/bbb.pl perl
/home/my/script/second/ccc.sh bash
Zatim sem se dostal k tomuhle:
find $nazev_adresare -exec grep -H -l "bash" '{}' \;
- tohle ovsem nevyhledava pouze na prvni radku takze bych do toho potreboval nejak implementovat "| head -n 1" bohuzel nemuzu prijit na to jak?
- navic bych chtel aby to vypsalo i typ skriptu nejen cestu k souboru jak je videt v prikladu
Pokud byste meli nejakou radu diky

