Ma intereseaza sa fac un script care sa: copie/mute primele 2 fisiere dintr-un anumit director in altul nou creat, dupa care sa ia urmatoare;e 2 fisiere din acelasi director sursa si sa le copie/mute in alt director nou creat, si tot asa pana se termina fisierele;se poate face asa ceva?
Autentificare
Meniu utilizator
Cine este online
There are currently 0 users online.
Cine este nou
- gogutu
- alexpetrut93
- CostiCampean
Topicuri noi
Ultimele comentarii
-
1 year 3 months agoAuthor: symbianflo
-
1 year 3 months agoAuthor: rich1974
-
1 year 4 months agoAuthor: symbianflo
-
1 year 4 months agoAuthor: symbianflo
-
1 year 5 months agoAuthor: pretender
-
1 year 8 months agoAuthor: symbianflo
-
1 year 8 months agoAuthor: rich1974
-
1 year 8 months agoAuthor: symbianflo
-
1 year 8 months agoAuthor: rich1974
-
1 year 8 months agoAuthor: symbianflo
Aplicatii noi
Powered by pkgs.org
Uite ceva "primitive" ce-mi vin acum rapid in minte:
ls -1 | head -n 2
--- cu asta iti afiseaza primele 2 fisiere din directoru curent (unde ai dat comanda)si apoi mai un pipe cu asta:
while read line; do mv "$line" /cale/catre/director_destinatie; done
ls -1 | head -n 2 | while read line; do mv "$line" /cale/catre/director_destinatie; done
Traiasca sfantu pipe! :)
--
Ghidul Mandriva
Configurarea PPPoE
Hai si cu varianta muncitoreasca :-))
[lucian@localhost tmp]$ mkdir pigulici
[lucian@localhost tmp]$ cd pigulici/
[lucian@localhost pigulici]$ mkdir dir1
[lucian@localhost pigulici]$ cd dir1/
[lucian@localhost dir1]$ ls
[lucian@localhost dir1]$ touch fisier{1,2,3,4,5,6}
[lucian@localhost dir1]$ ls
fisier1 fisier2 fisier3 fisier4 fisier5 fisier6
[lucian@localhost dir1]$ while [ "$(ls -A ".")" ]; do mkdir ../`ls -A|head -n 2|awk '{ ORS="_"; print; }'` && mv -v `ls -A|head -n 2|awk '{ ORS=" "; print; }'` ../`ls -A|head -n 2|awk '{ ORS="_"; print; }'`; done
`fisier1' -> `../fisier1_fisier2_/fisier1'
`fisier2' -> `../fisier1_fisier2_/fisier2'
`fisier3' -> `../fisier3_fisier4_/fisier3'
`fisier4' -> `../fisier3_fisier4_/fisier4'
`fisier5' -> `../fisier5_fisier6_/fisier5'
`fisier6' -> `../fisier5_fisier6_/fisier6'
[lucian@localhost dir1]$ ls
[lucian@localhost dir1]$ ls ../*
../dir1:
../fisier1_fisier2_:
fisier1 fisier2
../fisier3_fisier4_:
fisier3 fisier4
../fisier5_fisier6_:
fisier5 fisier6
Si'acu vine Csabi cu o linie de ruby si ne sparge pe toti. :)
' Zombie: "Thou canst not kill that which doth not live. But you can blast it into chunky kibbles." ' (Quake1 manual, chapter VI, section D, line 676)
Pigulici, la varianta mea posibil sa fie probleme daca ai fisiere cu spatii in nume, asa ca fii cu bagare de seama.
' Zombie: "Thou canst not kill that which doth not live. But you can blast it into chunky kibbles." ' (Quake1 manual, chapter VI, section D, line 676)
Si'acu vine Csabi cu o linie de ruby si ne sparge pe toti. :)
ditto :))
--
Ghidul Mandriva
Configurarea PPPoE
Buna intrebare, tocmai ma plictiseam... iata o solutie la ce doresti tu, te rog sa o adaptezi la numele tale de foldere. In lipsa de mai multe informatii am improvizat un pic.
Csabi′s BLOG
Linux registered user # 457717
@maxx & @n3o
Chiar m-am chinuit dar nu am reusit intr-un singur rand. Uite aici in 2 randuri + un require:
require 'fileutils'
allFiles=Dir.entries(ARGV[0]).sort_by{ |file| file}.collect{|file| file if !File.directory?(file)}.compact
allFiles.each{|file| puts allFiles.shift(2).each{|sourcefile| FileUtils.move ARGV[0]+"/"+sourcefile, '/tmp/dest'}}
Csabi′s BLOG
Linux registered user # 457717
@Csabi: cool enough :)
@pigulici: Un amic a dorit si el sa participe la exercitiu, http://pastie.org/4052891
' Zombie: "Thou canst not kill that which doth not live. But you can blast it into chunky kibbles." ' (Quake1 manual, chapter VI, section D, line 676)
Hehe, e fain Ruby, btw, nu puteai sa "califici" metodele din fileutils ceva de genu fileutils.Bla si atunci sa scapi de requires?
--
Ghidul Mandriva
Configurarea PPPoE
Wow, cata coderi prin zona, stiu su eu ceva cod(baza bazelor,pana la geniuchiul broastei...dar m-am impotmolit), idee e ca lucrez in grafica(muuult) si am un proiect la care trebuie sa aplic efecte diferite la fiecare 2 fisiere(pe care le-am lucrat deja), ca sa imi fie usor aplic pe directoare efectele, dar tre sa mut din directorul principalt cate 2 fisiere in cate un director separat, care este creat pe loc(fisierul 1 si 2 in dir 1, fisierul 3 si 4 in dir 2, samd), fisierle au nume de forma 50005-C21_1_big.jpg si sunt cateeva sute...luni voi testa ce mi s-a sugerat aici(atunci termin cu lucrul principal la ele) si revin cu feedback, multumesc in avans.
@pigulici - doar sa-ti faci o copie inainte la ele, nu cumva sa se piarda undeva.
@maaxx - e faina solutia amicului tau, dar listeaza cam de prea multe ori fisierele din folder. In fiecare ciclu de while se face un 'ls' si mai ai si un for in el cu 'find'. Daca ai sa zicem 2mii de fisiere acolo pe un HDD obisnuit, codul ala o sa macine mult si bine.
Csabi′s BLOG
Linux registered user # 457717
@csabi - da, scripturile astea ale noastre nu sunt chiar cele mai optime.. :-)
Dincolo de performanta, lucrul care ma deranjeaza cel mai tare e ca m-am bazat pe "ls" si am fost de multe ori muscat de faza cu "ls, too many arguments", nici nu ai nevoie de prea multe fisiere ca sa-l dai pe spate pe "ls". Probabil un exemplu bazat numai pe "find" sa zicem ar fi mai cool.
Evident o solutie ca a ta nu ar suferi de problema asta... avantajul unui limbaj ca lumea. :)
@pigulici - grija mare totusi, fa teste pe o copie inainte.. sa nu ne injuri. :)
' Zombie: "Thou canst not kill that which doth not live. But you can blast it into chunky kibbles." ' (Quake1 manual, chapter VI, section D, line 676)
@ nuxulica si restul , cu parere de rau tre sa recunosc ,( avind in vedere ca nu suport ruby...) , dar solutia lui Csabi mi se pare cea mai eleganta... si char scriptul in bash nu-i zero ... vroiam sa ma arunc si eu dar dupa Csabi , orice scriptezi te faci de ochi maro :D
Unix is user-friendly. It’s just very selective about who its friends are
Pai normal ca e mai eleganta, e facuta intr-un limbaj ca lumea. Ca la nivel de bash nici al lui nu e cine stie ce miss univers. :))
' Zombie: "Thou canst not kill that which doth not live. But you can blast it into chunky kibbles." ' (Quake1 manual, chapter VI, section D, line 676)
te roade invidia HUH? auzi nuxulicu nu o fi miss univese dar fata de a ta??? hai recunoaste bosule , tu legat cu lanturi ( btw daca ai space in nume ce faci ? ) ,azotatul cu pipele ghghghghghgh vezi de ce nu ma bag .... asa crede lumea ca-s inteligent ghghghghgh
Unix is user-friendly. It’s just very selective about who its friends are
Nu cred ca puteam. Fileutils, desi vine cu ruby nu este built-in, deci trebuie sa-l incluzi. Daca observi l-am folosit direct FileUtils.move...
Csabi′s BLOG
Linux registered user # 457717
Am folosit bash-ul lui csaba , pt ca mai stiu oleaca de bash,in caz ca e nevoie de debug, a mers ok, problema a fost ca unele fisiere sunt afisate in alta ordine in win fata de linux si noroca ca mi s-a spus de spatii, lua eroare pt vreo 3 fisiere cu spatii in nume...multam tuturor si mai ales lu csaba.
Sa cresti mare.
Csabi′s BLOG
Linux registered user # 457717