[UNIX] Commando: plaatjes in een zip bestand.

Pagina: 1
Acties:

  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 30-07-2025
Tot een paar dagen geleden kon ik het volgende commando gebruikt:
zip alleplaatjes.zip *.jpg -x *_thumb.jpg -x *_mid.jpg

Deze haalde uit een directory alle grote plaatjes en stopte deze in een zip bestand. De twee verschillende thumbs (thumb en mid) mogen niet in dit zipje geplaatst worden.

Kennelijk hebben wij nu teveel plaatjes in deze directory staan, want ik kreeg nu een "Argument list too long" error.

Mijn vraag; hoe kan ik dit commando weer aan de praat krijgen? Ik heb gekeken naar bijv. het xargs commando, maar volgens mij roept die iedere keer het commando opnieuw aan waardoor er dus meerdere zips ontstaan (of wordt het zip bestand steeds weer overschreven).

Het volgende commando blijft ook niet te werken;
find /home2/site/public_html/wholesale/pictures/ -maxdepth 1 | grep *.jpg -v *_thumb.jpg | grep -v *_mid.jpg | /usr/local/bin/zip -9 /home2/site/public_html/wholesale/pictures/testing.zip -j -@

Deze zet namelijk alle bestanden in het zip bestand en niet alleen de grote jpg's.

Wie-o-wie kan mij helpen aan een goed commando voor, naar mijn mening, een toch wel gemakkelijk opdracht.... :/

  • Vaudtje
  • Registratie: April 2002
  • Niet online
Heeft zip geen "add to archive" optie? Dan zou je met je xargs een eind kunnen komen.

In deeze zin staan drie fauten


  • DeMoN
  • Registratie: Maart 2001
  • Laatst online: 06-01 23:13

DeMoN

Pastafari

code:
1
for bestand in `ls -1 |grep -v -e '_mid.jpg' |grep -v -e '._thumb.jpg'`; do zip alleplaatjes.zip $bestand; done;
:? :P

Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein


  • Lip
  • Registratie: December 2000
  • Niet online

Lip

De professionele prutser

DeMoN schreef op woensdag 28 maart 2007 @ 10:50:
code:
1
for bestand in `ls -1 |grep -v -e '_mid.jpg' |grep -v -e '._thumb.jpg'`; do zip alleplaatjes.zip $bestand; done;
:? :P
met hem! O-)

Beter geluid voor iedereen! Zo doe je dat!!! Vergeet je niet een +3 te geven? Bedankt voor het lezen. Flat frequency response EQUALS real music!!! EQUALS Sonic clarity


  • user109731
  • Registratie: Maart 2004
  • Niet online
Of zoiets:
find /var/www -maxdepth 1 | grep -v -e '_thumb\|_mid' | zip /var/www/alleplaatjes.zip -@ 


:)
Het lijkt er op dat je commando niet meer werkte omdat eerst alle 'matchende' namen opgezocht werden, en meegegeven aan het zip commando. Als dat veel bestanden zijn krijg je dus een mega lang argument...

[ Voor 15% gewijzigd door user109731 op 28-03-2007 11:03 ]


  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 30-07-2025
DeMoN schreef op woensdag 28 maart 2007 @ 10:50:
code:
1
for bestand in `ls -1 |grep -v -e '_mid.jpg' |grep -v -e '._thumb.jpg'`; do zip alleplaatjes.zip $bestand; done;
:? :P
Zoals jullie vast merken ben ik totaal niet in Unix thuis, dus bovenstaande roept dit op:
for: Command not found.
bestand: Undefined variable.

Is er dan echt geen gemakkelijk commando voor? In het oude vertrouwde DOS was het zelfs allemaal nog makkelijker....... *zucht*

  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 30-07-2025
Grote prutser schreef op woensdag 28 maart 2007 @ 10:59:
Of zoiets:
find . -maxdepth 1 | grep -v -e '_thumb\|_mid' | zip alleplaatjes.zip -@ 

:)
Het lijkt er op dat je commando niet meer werkte omdat eerst alle 'matchende' namen opgezocht werden, en meegegeven aan het zip commando. Als dat veel bestanden zijn krijg je dus een mega lang argument...
Deze doet het bijna.. op 1 ding na. Hij neemt ook andere bestanden uit de directory mee (bijv. .gif plaatjes). Als ik alleen dan aangeef dat hij alleen *.jpg mag meenemen dan krijg ik weer die "argument list too long"....

  • user109731
  • Registratie: Maart 2004
  • Niet online
-name '*.jpg' direct achter het pad achter find zetten? :)
Is er dan echt geen gemakkelijk commando voor? In het oude vertrouwde DOS was het zelfs allemaal nog makkelijker....... *zucht*
Wist niet dat DOS al zo'n krachtige commandline had :)

[ Voor 95% gewijzigd door user109731 op 28-03-2007 11:13 . Reden: -name en * toegevoegd ]


  • DeMoN
  • Registratie: Maart 2001
  • Laatst online: 06-01 23:13

DeMoN

Pastafari

SuperJERK schreef op woensdag 28 maart 2007 @ 11:00:
[...]


Zoals jullie vast merken ben ik totaal niet in Unix thuis, dus bovenstaande roept dit op:
for: Command not found.
bestand: Undefined variable.

Is er dan echt geen gemakkelijk commando voor? In het oude vertrouwde DOS was het zelfs allemaal nog makkelijker....... *zucht*
Dat het in DOS makkelijker leek komt idd doordat je daar vertrouwd mee was.
Niet dat ARJ korte commando's vereiste of zo :o
Dit commando wat ik je gaf moet gewoon werken als je bash gebruikt :)

Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein


  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 30-07-2025
Grote prutser schreef op woensdag 28 maart 2007 @ 11:04:
-name '.jpg' direct achter het pad achter find zetten? :)
Dat pakt ie niet?
find . jpg -maxdepth 1 | grep -v -e '_thumb\|_mid' | zip alleplaatjes.zip -@

Is het niet mogelijk om dat in grep aan te geven? Iets als:
find . -maxdepth 1 | grep -o -e 'jpg' -v -e '_thumb\|_mid' | zip alleplaatjes.zip -@

  • user109731
  • Registratie: Maart 2004
  • Niet online
Als je het zo doet moet je wel een | achter 'jpg' zetten. Maar ik zou het zelf met find doen, ik was de * vergeten, zoiets: find . -name '*.jpg' -maxdepth 1

[ Voor 6% gewijzigd door user109731 op 28-03-2007 11:15 ]


  • DeMoN
  • Registratie: Maart 2001
  • Laatst online: 06-01 23:13

DeMoN

Pastafari

Grote prutser schreef op woensdag 28 maart 2007 @ 11:14:
Als je het zo doet moet je wel | grep achter 'jpg' zetten.
;) (typo denk ik)

btw, als ik
code:
1
find . -maxdepth 1 | grep -v -e '_thumb\|_mid' | zip alleplaatjes.zip -@

uittest op mijn bak werkt ie ook gewoon perfect hoor (het eerst genoemde 'find commando' in dit topic dus).
Mijn dirlist (als test)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
root[~/plaatjes]: ls -1
hoi1.jpg
hoi1_mid.jpg
hoi1_thumb.jpg
hoi1.zip
hoi2.jpg
hoi2_mid.jpg
hoi2_thumb.jpg
hoi3.jpg
hoi3_mid.jpg
hoi3_thumb.jpg
hoi4.jpg
hoi4_mid.jpg
hoi4_thumb.jpg
hoi5.jpg
hoi5_mid.jpg
hoi5_thumb.jpg
hoi.jpg


Volledige output:
code:
1
2
3
4
5
6
7
8
root[~/plaatjes]: find . -maxdepth 1 | grep -v -e '_thumb\|_mid' | zip alleplaatjes.zip -@
  adding: hoi.jpg (stored 0%)
  adding: hoi1.jpg (stored 0%)
  adding: hoi2.jpg (stored 0%)
  adding: hoi3.jpg (stored 0%)
  adding: hoi4.jpg (stored 0%)
  adding: hoi5.jpg (stored 0%)
  adding: hoi1.zip (stored 0%)

[ Voor 68% gewijzigd door DeMoN op 28-03-2007 11:20 ]

Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein


  • SuperJERK
  • Registratie: Januari 2002
  • Laatst online: 30-07-2025
DeMoN schreef op woensdag 28 maart 2007 @ 11:17:
[...]
;) (typo denk ik)

btw, als ik
code:
1
find . -maxdepth 1 | grep -v -e '_thumb\|_mid' | zip alleplaatjes.zip -@

uittest op mijn bak werkt ie ook gewoon perfect hoor (het eerst genoemde 'find commando' in dit topic dus).
Mijn dirlist (als test)
code:
1
2
root[~/plaatjes]: ls -1
*knip*


Volledige output:
code:
1
2
3
root[~/plaatjes]: find . -maxdepth 1 | grep -v -e '_thumb\|_mid' | zip alleplaatjes.zip -@
*knip*
  adding: hoi1.zip (stored 0%) <-----
Nee hij werkt volgens mij niet perfect, want hij zipped ook je zipje (hoi1.zip).

Deze werkt wel perfect:
find . -name '*.jpg' -maxdepth 1 | grep -v -e '_thumb\|_mid' | zip alleplaatjes.zip -@

Whoei! Ik ben blijd! :*) , thanks! _/-\o_

[ Voor 20% gewijzigd door SuperJERK op 28-03-2007 11:37 ]


  • DeMoN
  • Registratie: Maart 2001
  • Laatst online: 06-01 23:13

DeMoN

Pastafari

SuperJERK schreef op woensdag 28 maart 2007 @ 11:36:
[...]


Nee hij werkt volgens mij niet perfect, want hij zipped ook je zipje (hoi1.zip).
|:( Niet eens op gelet :P
Deze werkt wel perfect:
find . -name '*.jpg' -maxdepth 1 | grep -v -e '_thumb\|_mid' | zip alleplaatjes.zip -@

Whoei! Ik ben blijd! :*) , thanks! _/-\o_
mooi :)

Gamertag: Cosmicv0id
"Het woord Gods is voor mij niets meer dan een expressie en het product van menselijke zwakheid. De Bijbel is een verzamelwerk van legendes die achtenswaardig zijn maar ook primitief en kinderachtig.'' - Albert Einstein

Pagina: 1