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
-
Potreboval bych na / najit vsechny soubory, ktere obsahuji bash, sh .... skripty.
Tento skript nefunguje:
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?
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
-
Mě funguje třeba tohle
find adresar -type f -exec egrep -l "#\!/bin/bash|#\!/bin/sh" '{}' \; -print
-
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 :)
[prema@localhost ~]$ ls foo
ba r.sh ba r.sh~ foo o.sh foo o.sh~
[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)
-
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 :)
[prema@localhost ~]$ ls foo
ba r.sh ba r.sh~ foo o.sh foo o.sh~
[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!!
egrep -rIlm1 '^#!/' $cesta
Dekuji jsem si rikal ze se asi "skrabu levou nohou za levym uchem" :)
-
....
Jasny proto mam promene v ""
A jo, tohle mě v tuhle chvíli vůbec nenapadlo ::)