1 din 2
1
Un utilitar “must have”!
  [ Ignoră ]
Rank
Newbie
Din: Radauti, Suceava
Macuser din: 16.12.05

Exista un utilitar de sistem , se numeste CLIX, e free si dupa parerea mea o mica bijuterie. Se potriveste perfect cu filosofia Unix KISS (Keep It Simple ...) si inlocuieste cel putin doua programe comerciale. Site-ul de unde se poate downloada, http://www.rixstep.com este plin de informatii foarte interesante si valoroase, merita citit!

Profil
 
  [ Ignoră ]   [ # 1 ]
RankRankRank
Member
Din: RO-020251
Macuser din: 11.10.05

http://www.rixstep.com/4/0/clix/

Cam asta face:

“CLIX (‘command line interface for OS X’) makes it easy to harness the power of Unix. It becomes both a fish to buy and a series of lessons in how to fish and ultimately a handy way to work.

It doesn’t try to rip you off - it tries to teach you, so you become more independent and don’t need that line thrown at you all the time.

The CLIX package includes a starter command database with over 1000 (yes, you read that right) system commands for investigating your system status, for cleaning out the junk files, for getting at secret settings for the Dock, the Finder, Spotlight, Dashboard, Exposé, and all of your most used applications, and all sorted for easy access, any way you wish.

You also gain access for the first time to the tens of thousands of unused files in your BSD subsystem, files no one’s really told you about.”

Nu prea inteleg, dar ma rog, poate sergiulica sa ne ofere un inside.

Profil
 
  [ Ignoră ]   [ # 2 ]
Avatar
RankRankRank
Member
Din: Bucuresti
Macuser din: 11.10.05

Pai din ce inteleg eu in loc sa faci (scuzati stupiditatea exemplului)

find / -name “*.dmg” -mtime 3 | xargs rm -f

cu care ai sterge toate fisierele .dmg modificate in ultimele 3 zile faci:

Meniu->Script->Sterge_Toate_DMG-urile_Mai_Vechi_De_Trei_Zile.

Si inca alte o mie de comenzi considerate de autor utile.


c

Profil
 
  [ Ignoră ]   [ # 3 ]
Avatar
RankRankRankRank
Administrator
Din: The Colony, TX
Macuser din: 11.10.05

... care pentru cineva care nu stie shell script si nu are cine sa il invete este bine. Mai ales daca ii zice si ce face comada respectiva ca sa poate sa invete omul.

si poate nu intotdeauna vrei sa tastezi:

for i in *.mp3;do mv “$i” `echo “$i”|tr [:upper:]\ \(\)\&\!\* [:lower:]_[]___ |sed -e s+_-_+-+g -e s+__+_+g -e “s/\([:alpha:]*\)\[/\1_\[/”`;done

cand vrei sa redenumesti toate mp3-urile dintr-un director cu litere mici, _ in loc de spatiu, &, ! si *, paranteze patrate in loc de rotunde si formatate sa arate mai frumos

 Semnătură 

Apple:5x macmini (G4, 2007, 2009, 2010, 2012)
UNIX:IBM 7011-250/AIX 5.1, HP Jornada 680/JLime, HP 9000 F20/HP-UX 11.11
PC:PentiumD/Debian, HP t5300/Debian
Misc:Spectrum 48k, 8x Raspberry Pi, 2x CHIP

Profil
 
  [ Ignoră ]   [ # 4 ]
Avatar
RankRankRankRank
Sr. Member
Din: Buchenland
Macuser din: 06.09.05
psergiu - 20 Decembrie 2005 08:45 PM

for i in *.mp3;do mv “$i” `echo “$i”|tr [:upper:]\ \(\)\&\!\* [:lower:]_[]___ |sed -e s+_-_+-+g -e s+__+_+g -e “s/\([:alpha:]*\)\[/\1_\[/”`;done

shock

Unix sucks… 

raspberry

 Semnătură 

⌘-N

Profil
 
  [ Ignoră ]   [ # 5 ]
Avatar
RankRankRankRank
Administrator
Din: The Colony, TX
Macuser din: 11.10.05

Tudor, atunci demonstreaza-mi te rog cum poti face ce am zis eu mai simplu altfel, cu alte utilitare, alt OS, ce vrei tu care nu foloseste Unix.
Complet trebuie sa faca asa:

Redenumire a toate fisierele a caror nume se termina cu .mp3 din directorul curent astfel incat:

litere mari -> litere mici
spatiu, &, !, * -> _
paranteze rotunde -> paranteze patrate
“artist - melodie” (cu spatii) -> “artist-melodie” (fara spatii)
unde gaseste 2 _ una dupa alta (dupa ce a facut translatarea de mai sus) sa reduca la unul singur
cuvant(ceva) -> cuvant_(ceva)

adica:
Gigi&Funk; - Go! Melodie Best(remix) *NEW ReLeAsE*.mp3
sa devina:
gigi_funk-go_melodie_best_[remix]_new_release_.mp3

 Semnătură 

Apple:5x macmini (G4, 2007, 2009, 2010, 2012)
UNIX:IBM 7011-250/AIX 5.1, HP Jornada 680/JLime, HP 9000 F20/HP-UX 11.11
PC:PentiumD/Debian, HP t5300/Debian
Misc:Spectrum 48k, 8x Raspberry Pi, 2x CHIP

Profil
 
  [ Ignoră ]   [ # 6 ]
Avatar
RankRankRankRank
Sr. Member
Din: Buchenland
Macuser din: 06.09.05

Who cares? The point is: UNIX sux!

smile  Glumeam, nu te-ai prins? Ce-ai zis tu se poate face cu Automator.

 Semnătură 

⌘-N

Profil
 
  [ Ignoră ]   [ # 7 ]
Avatar
RankRankRankRank
Sr. Member
Din: Buchenland
Macuser din: 06.09.05

Si in plus in Automator poti salva action-ul rezultat sub forma de plugin Finder, pe care-l poti accesa ori de cate ori ai nevoie prin ctrl-click (click dreapta).

 Semnătură 

⌘-N

Profil
 
  [ Ignoră ]   [ # 8 ]
Avatar
RankRankRankRank
Administrator
Din: The Colony, TX
Macuser din: 11.10.05

Sa iti vedem ale tale “MaD Aut0mAt0r SkiLLz” Tudore - fa un Automator Workflow care face asta si ataseaza-l aici smile Hai ca-s curios.

 Semnătură 

Apple:5x macmini (G4, 2007, 2009, 2010, 2012)
UNIX:IBM 7011-250/AIX 5.1, HP Jornada 680/JLime, HP 9000 F20/HP-UX 11.11
PC:PentiumD/Debian, HP t5300/Debian
Misc:Spectrum 48k, 8x Raspberry Pi, 2x CHIP

Profil
 
  [ Ignoră ]   [ # 9 ]
Avatar
RankRankRankRank
Sr. Member
Din: Buchenland
Macuser din: 06.09.05

Vezi atasat. Face 99% ce ai spus tu, dar daca te joci cu modulele “Rename Finder Items” si le pui in ordinea care trebuie, iese perfect. N-am timp acum sa-l mai bibilesc, dar merge. Deschide-l in Automator si dupa aia da-i Save as Plugin, alegi “Plugin for Finder”, si dupa aia e suficient sa selectezi fisierele cu pricina, dai ctrl-click -> Automator -> Super Rename.

Fișiere atașate
super_rename.workflow.zip  (Dimensiune Fişier 6 - Downloads: 109)
 Semnătură 

⌘-N

Profil
 
  [ Ignoră ]   [ # 10 ]
RankRankRank
Member
Din: Cluj
Macuser din: 14.10.05

/me bows to psergiu’s mad shell skillz
Tudor : unix rules! smile si oricat de flexibil ar fi automator, tot cred ca mai puternic este shell-ul.
Bineinteles, daca shell-ul nu ajunge, there’s always perl, python, etc.

Profil
 
  [ Ignoră ]   [ # 11 ]
Avatar
RankRankRankRank
Sr. Member
Din: Buchenland
Macuser din: 06.09.05

UNIX rulez, dar nu si pentru mine si alte milioane de utilizatori care n-au chef, timp sau inclinatii sa invete comenzile alea luuuungi de tot. Pentru noi, Automator este mult mai potrivit in cazuri ca cel de faţă, avand in vedere ca oricum nu avem de-a face niciodata cu toate chestiile din UNIX.

 Semnătură 

⌘-N

Profil
 
  [ Ignoră ]   [ # 12 ]
Avatar
RankRankRankRank
Administrator
Din: The Colony, TX
Macuser din: 11.10.05

Acum am citit si eu workflow-ul facut de Tudor. Da, face tot ce trebuie smile Jos palaria smile Dar mie unuia imi este mai usor si mult mai repede sa bat o comanda care sa faca asta cum ar fi:

for i in *.mp3;do mv "$i`echo $i|tr [:upper:]\ \(\)\&\!\*\.\', [:lower:]_[]______ |sed -e s+_-_+-+g -e s+_-+-+g -e s+___+_+g -e s+__+_+g -e s/\([:alpha:]*\)\\\[/\1_\\\[/ -e s/_mp3$/.mp3/ `;done 

(versiunea imbunatatita a ce am scris deasupra)
Pe care - daca va intereseaza - o voi explica pas cu pas ca sa va initiez si pe voi in tainele shellscript-ului. smile

 Semnătură 

Apple:5x macmini (G4, 2007, 2009, 2010, 2012)
UNIX:IBM 7011-250/AIX 5.1, HP Jornada 680/JLime, HP 9000 F20/HP-UX 11.11
PC:PentiumD/Debian, HP t5300/Debian
Misc:Spectrum 48k, 8x Raspberry Pi, 2x CHIP

Profil
 
  [ Ignoră ]   [ # 13 ]
Avatar
RankRankRank
Member
Din: Bucuresti
Macuser din: 11.10.05

@psergiu…. you maniac….

sorry pt. offtopic

Profil
 
  [ Ignoră ]   [ # 14 ]
Avatar
RankRankRankRank
Sr. Member
Din: Buchenland
Macuser din: 06.09.05
psergiu - 28 Decembrie 2005 02:33 PM

Pe care - daca va intereseaza - o voi explica pas cu pas ca sa va initiez si pe voi in tainele shellscript-ului. smile

Explica, nu strica sa mai invatam cate ceva.

 Semnătură 

⌘-N

Profil
 
  [ Ignoră ]   [ # 15 ]
Avatar
RankRankRankRank
Administrator
Din: The Colony, TX
Macuser din: 11.10.05

Lectia 1: for

Sintaxa: for NAME in WORDS ... ; do COMMANDS; done

Executarea unor/unei comenzi pentru fiecare cuvant din lista WORDS ... NAME este un nume de variabila care va fi inlocuit la fiecare bucla a rularii comenzilor COMMANDS cu urmatorul element din lista.
Exemplu:

for var in ala bala portocala
 
do
  echo 
Eu zic $var
 done 

Rezultat:

Eu zic ala
Eu zic bala
Eu zic portocala 

Acuma intervine faptul ca shell-ul inainte de a executa orice va expanda toate wildcardurile gen * (inlocuieste oricate litere) si ? (inlocuieste o singura litera) deci:

for i in *.mp3
 
do
  
fa_ceva_lui $i
 done 

La executie *.mp3 va fi inlocuit cu numele tuturor fisierelor (si directoarelor, atentie) din directorul curent care se termina cu “.mp3”, deci comanda fa_ceva_lui va fi executata pt fiecare din ele

Atentie: Daca numele unui fisier “cules” de comanda for contine spatii in nume, se pot intampla chestii funny - exemplu:
Avem intr-un director un fisier numit “Ana are mere.mp3”. Comanda urmatoare (stergerea tutoror fisierelor .mp3):

for i in *.mp3 ; do rm $i done 

va zice asa:

rmcannot remove `Ana': No such file or directory
rm: cannot remove 
`Are': No such file or directory
rm: cannot remove `Mere.mp3'
No such file or directory 

Deoarece linia rm $i va fi expandata ca rm Ana Are Mere.mp3 deci rm urmat de 3 nume de fisiere care trebuie sa le stearga - spatiul fiind delimitatorul intre parametrii pe linia de comanda. Las ca exercitiu de gandire ce se intampla daca fisierul se numea “-r * .. .mp3” - nume perfect valid (Hint: NU incercati pe un calculator pe care aveti date care nu le vreti sterse- comanda rm NU pune nimica in Trashcan - sterge pur si simplu)
Ce sa facem in cazul asta ? Simplu:

for i in *.mp3 ; do rm "$idone 

Ghilimelele din jurul lui $i vor face ca numele fisierului cu toate ca contine spatii sa fie tratat ca un singur sir.

Chestii semi-utile de facut cu for - redenumirea tuturor fisierelor cu extensia .jpg din director-ul curent ca numar-nume.jpg unde numar se tot incrementeaza.

numar=1
for nume in *.jpg 
 
do
  
mv $nume ${numar}-${nume}
  let numar
=numar+1
 done 

Explicatii:

${numar} este o metoda alternata de a scrie numele lunei variabile (in loc de $numar) pentru a fi sigur ca variabila va fi implementata corect. De exemplu daca avem for i in mumu bubu si vrem sa stergem fisierele mumulender si bubulender daca dam rm $ilender shell-ul nu o sa stie cine e variabila ilender. Asa ca zicem rm ${i}lender

* DE OBICEI se expandeaza cu numele fisierelor in ordine alfabetica crescatoare DAR unele shell-uri expandeaza in ordinea in care fisierele au fost scrise in director - puteti sa dati un echo * ca sa verificati.

 Semnătură 

Apple:5x macmini (G4, 2007, 2009, 2010, 2012)
UNIX:IBM 7011-250/AIX 5.1, HP Jornada 680/JLime, HP 9000 F20/HP-UX 11.11
PC:PentiumD/Debian, HP t5300/Debian
Misc:Spectrum 48k, 8x Raspberry Pi, 2x CHIP

Profil
 
   
1 din 2
1