Linux Srbija - www.linuxo.org
Home arrow Forum arrow Linuxarrow Programiranjearrow BASH: kako iskopirati fajlove u svim poddirektorijumima u jedan direktorijum?
Dobrodošli, Gost. Molim vas prijavite se ili se registrujte.
Da li ste izgubili vaš aktivacioni e-mail?
21 Август 2008, 22:43:18
Početna Pomoć Pretraga Prijavljivanje Registracija
Vesti:
linuxo.org  - osnovna stranica





+  Linuxo Forumi
|-+  Linux
| |-+  Programiranje (Urednik: popac)
| | |-+  BASH: kako iskopirati fajlove u svim poddirektorijumima u jedan direktorijum?
« prethodna tema sledeća tema »
Stranice: 1 [2] Idi dole Štampaj
Autor Tema: BASH: kako iskopirati fajlove u svim poddirektorijumima u jedan direktorijum?  (Pročitano 2235 puta)
foxbunny
Hero Member
*****
Van mreže Van mreže

Pol: Muškarac
Poruke: 2407



WWW
« Odgovor #15 poslato: 03 Мај 2008, 11:33:20 »

find ima podrsku za regexp, tako da ne moras ni da grepujes. Wink
Prijavi uredniku   Sačuvana


No, I'm not a g33k. I only use Vim to play games. Blog.
Časlav Ilić
Full Member
***
Van mreže Van mreže

Pol: Muškarac
Poruke: 205



« Odgovor #16 poslato: 03 Мај 2008, 12:01:10 »

Jest, al' su njegovi regizovi ružniji od grepovih (posebno grep -E, tj. egrep), u ovom primeru bi bilo nešto kao ! -regex '.*\.svn/.*'. Drugo, možda i ne želim da grepujem pre obrade, već nešto peto (npr. sortiram, ili čak grepujem po sadržaju, grep -liI). Treće, možda mi je za krajnju naredbu baš i neophodno da se pozove sa svim pronađenim datotekama, a ne samo radi brzine. Kad se sve sabere, prosto se ne hvatam za te „napredne“ mogućnosti find, a vidim da i inače ljudi to ne čine po skriptama.

(Doduše, pročitao sam negde da find ... -exec može biti korisno u slučajevima kada je bitna bezbednost, da se ništa ne umeša u cevku.)
Prijavi uredniku   Sačuvana
foxbunny
Hero Member
*****
Van mreže Van mreže

Pol: Muškarac
Poruke: 2407



WWW
« Odgovor #17 poslato: 03 Мај 2008, 13:44:16 »

Pa naravno, to je poenta Unix shella, uvek mozes da pajpujes. To jest, ako ne mozes, onda ta komanda i nije Unixicna. Wink

Ali ono, find je dovoljno mocan da moze i sam da ti zavrsi 99% stvari koje si naveo. Cheesy

A sto se tice bezbednosti, preporucuju -execdir.
Prijavi uredniku   Sačuvana


No, I'm not a g33k. I only use Vim to play games. Blog.
Marel
Full Member
***
Van mreže Van mreže

Pol: Muškarac
Poruke: 190


« Odgovor #18 poslato: 16 Мај 2008, 21:40:29 »

Da li može nekako da se izvede ovako nešto:

Kod:
for file in `find . -type f`; do
    # radimo nešto sa promenjljivom $file
done

Pošto for koristi space kao separator, svi fajlovi koji sadrže ovaj znak u svom nazivu će se tretirati kao dva.

Najbolje rešenje koje sam smislio je da se napravi fajl "../skript":

Kod:
read file
while [ "$file" ]; do
    # radimo nešto sa promenjljivom $file
    read file
done

pa da se pozove sa

Kod:
find . -type f | sh ../skript

Prijavi uredniku   Sačuvana
Časlav Ilić
Full Member
***
Van mreže Van mreže

Pol: Muškarac
Poruke: 205



« Odgovor #19 poslato: 16 Мај 2008, 22:17:13 »

Možeš to da spakuješ u zaglavlje petlje:
Kod:
find . -type f | while read file; do
    # radimo nešto sa promenjljivom "$file", al' uvek pod navodnicima
done
Prijavi uredniku   Sačuvana
Marel
Full Member
***
Van mreže Van mreže

Pol: Muškarac
Poruke: 190


« Odgovor #20 poslato: 16 Мај 2008, 23:56:09 »

Stvarno korisna funkcionalnost. Nije mi palo na pamet da to može (jer je while built in naredba). Smiley
Prijavi uredniku   Sačuvana
Stranice: 1 [2] Idi gore Štampaj 
« prethodna tema sledeća tema »
Prebaci se na:  


Prijavite se sa korisničkim imenom, lozinkom i dužinom sesije

Pokreće MySQL Pokreće PHP Powered by SMF 1.1.3 | SMF © 2005, Simple Machines LLC | Srpski prevod uredio: tomaja [linuxo.org]
Joomla Bridge by JoomlaHacks.com
Ispravan XHTML 1.0! Ispravan CSS!
Stranica je napravljena za 0.035 sekundi sa 67 upita.