Pomoć oko komande find.

Pozdrav svima,

Pokusavam vec neko vreme da sredim svoje hard diskove i da sortiram sve fajlove po ekstenziji u odgovarajuce direktorijume. Komandom kojom pokusavam da nadjem sve na primer mp3 fajlove je " find $HOME -type f -iname “.mp3" -exec mv {} /direktorijum/MP3 ; " al’ nikad ne prebaci kompletno sve. Pre te komande proverim koliko tacno fajlova ima kad ih nadje " find $HOME -type f -iname ".mp3” -print | wc -l " i na kraju kad izlistam taj direktorijum gde sam sve prebacio, ne pokaze isti broj kao kad je nasao u pocetku. Naravno sve to radim u svom test direktorijumu pre nego sto pokrenem tu komandu na stvarnim fajlovima. Buni me dosta ta komanda jer nekad radi, a nekad ne radi. Nekad ne prijavi nikakvu gresku, a nekad prijavi na primer ovo "mv: are the same file " . Bio bih vam mnogo zahvalan ako neko zna gde gresim i da me usmeri kako treba da naucim jednom za svagda. Imam hard od 4T i bilo bi mnogo glupo da i trosenje vremena sortirati sve to peske kad mogu da iskoristim moc bash-a.

Srecna vam svima nova godina i sve najlepse vam zelim! :slight_smile:

Postoji mogućnost da ti ne prebaci duplikate ukoliko ih imaš, ili ako recimo imaš MP3 napisano velikim slovima. Ukoliko želiš da prebaciš i duple fajlove (isti naziv ista veličina, takođe obrati pažnju i na različitu veličinu a isti naziv) moraš to da zadaš u komandi, ja ne znam sada koja je komanda isključivo za tu namenu.

Bash ne može, čas da radi čas ne, on ili radi ili ne radi uopšte, a to da li radi zavisi samo od tebe kakvu mu komandu zadaš :slight_smile:

Ajde probaj ovako,

find / -name "*.mp3" -exec mv '{}' /direktorijum/MP3/ \;

E ako se desi da mi prebaci isti fajl u direktorijum gde on vec postoji, onda ce da ga overwrite-uje? Ne znam po cemu proverava da li je fajl isti. Ma ne krivim bash, nego sebe sto ne umem da ga koristim. Pogotovo ta komanda find koja mi sada moze resiti problem, pa je vreme da je naucim. A za komandu mv ili cp, znam da postoji opcija --no-clobber i --update. Pokusacu sa tim. Samo me buni zasto ne prebaci sve fajlove koje mi u pocetku ispise, na primer kaze da ima 100 mp3 fajlova u tom direktorijumu i kad ih prebacim sve sa komandom find u drugi direktorijum koji se zove MP3, na kraju mi ispise da u tom direktorijumu ima 40, gde su onda tih ostalih 60 fajlova…

pa mozda po toj hijerarhiji kojoj trazis ima fajlova sa istim imenom…

Probao sam sad to i ispisalo mi ovo:

" mv: ‘./novi_mp3/John Frusciante - God.mp3’ and ‘./novi_mp3/John Frusciante - God.mp3’ are the same file "

I tako za svaki fajl, al’ koliko vidim prebacio je sve, jer sam proverio pre komande da je nasao 405 mp3 fajlova i sad je svih 405 u tom direktorijumu gde sam naveo da prebaci. Sto to uopste ispisuje?

Ako je prebacio sve onda ignoriši komandu :smiley:

Šalim se malo, nisam siguran zašto to ispisuje, deluje kao da kada prebaci fajl pokuša još jednom da ga prebaci da bi proverio da li je prebačeno, tako mi deluje. Možda neko iskusniji ima bolji odgovor :smiley:

Mislim da je taj direktorijum pod istim root dirom sa koga prebacuje ;p

Mislim da sam shvatio, vi me ispravite ako gresim. Taj direktorijum gde prebacujem sve, se nalazi u putanji gde on trazi sve fajlove sa mp3 ekstenzijom i ono prebaceno on opet pretrazi i pokusa da prebaci opet gde naidje na vec te fajlove. Sad sam pokusao sa direktorijumom koji se nalazi na potpuno drugoj lokaciji i nije prijavio same files…

Tako je, Brana ti je gore upravo dao objašnjenje za to a ti potvrdio :slight_smile:

Hvala vam ljudi puno. Izvinite ako sam malo smarao sa ovako jednostavnim stvarima. Zelim vam srecan bozic i badnje vece! :slight_smile: