Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Uran 12 Listopadu 2010, 12:04:58

Název: nalezeni souboru se skripty
Přispěvatel: Uran 12 Listopadu 2010, 12:04:58
Potreboval bych na / najit vsechny soubory, ktere obsahuji bash, sh .... skripty.

Tento skript nefunguje:
Kód: [Vybrat]
find / -type f | while read F
do if [ "file "$F" | grep -o shell script text" = "shell script text" ]
then cp "$F" mnt/data/prechodne/skripty
fi
done

Edit: uz mi to funguje jen mi to pripadne dost zprasene a narocne na vykon. neslo by to jeste zjednodusit?
Kód: [Vybrat]
find / -type f  | while read F
do if [ "`file "$F" | grep -o "shell script text"`" = "shell script text" ]
then  cp "$F" /mnt/data/prechodne/skripty
fi
done
Název: Re: nalezeni souboru se skripty
Přispěvatel: premet 12 Listopadu 2010, 12:32:08
Mě funguje třeba tohle
Kód: [Vybrat]
find adresar -type f -exec egrep -l "#\!/bin/bash|#\!/bin/sh" '{}' \; -print
Název: Re: nalezeni souboru se skripty
Přispěvatel: premet 12 Listopadu 2010, 12:43:31
Navíc, když máš while read F a budeš mít adresář nebo soubor s delším názvem oddělený mezerou tak ti to nepůjde   :)

Kód: [Vybrat]
[prema@localhost ~]$ ls foo
ba r.sh  ba r.sh~  foo o.sh  foo o.sh~
Kód: [Vybrat]
[prema@localhost ~]$ find foo | while read line;do file $line; done
foo: directory
foo/foo: cannot open `foo/foo' (No such file or directory)
o.sh:    cannot open `o.sh' (No such file or directory)
foo/ba: cannot open `foo/ba' (No such file or directory)
r.sh:   cannot open `r.sh' (No such file or directory)
foo/foo: cannot open `foo/foo' (No such file or directory)
o.sh~:   cannot open `o.sh~' (No such file or directory)
foo/ba: cannot open `foo/ba' (No such file or directory)
r.sh~:  cannot open `r.sh~' (No such file or directory)
Název: Re: nalezeni souboru se skripty
Přispěvatel: Uran 12 Listopadu 2010, 13:40:27
Navíc, když máš while read F a budeš mít adresář nebo soubor s delším názvem oddělený mezerou tak ti to nepůjde   :)

Kód: [Vybrat]
[prema@localhost ~]$ ls foo
ba r.sh  ba r.sh~  foo o.sh  foo o.sh~
Kód: [Vybrat]
[prema@localhost ~]$ find foo | while read line;do file $line; done
foo: directory
foo/foo: cannot open `foo/foo' (No such file or directory)
o.sh:    cannot open `o.sh' (No such file or directory)
foo/ba: cannot open `foo/ba' (No such file or directory)
r.sh:   cannot open `r.sh' (No such file or directory)
foo/foo: cannot open `foo/foo' (No such file or directory)
o.sh~:   cannot open `o.sh~' (No such file or directory)
foo/ba: cannot open `foo/ba' (No such file or directory)
r.sh~:  cannot open `r.sh~' (No such file or directory)

Jasny proto mam promene v ""

bon apetit!!
Kód: [Vybrat]
egrep -rIlm1 '^#!/' $cesta

Dekuji jsem si rikal ze se asi "skrabu levou nohou za levym uchem" :)
Název: Re: nalezeni souboru se skripty
Přispěvatel: premet 12 Listopadu 2010, 13:45:39
....
Jasny proto mam promene v ""
A jo, tohle mě v tuhle chvíli vůbec nenapadlo  ::)