Script - Rarfiles erstellen - für jedes verzeichniss
Script - Rarfiles erstellen - für jedes verzeichniss
Hallo,
ich hoffe das mir hier jemand helfen kann - Da ich mich erst seit rund 2 Monaten intensiv mit Linux beschäftige sind meine kenntnisse noch nicht so berauschend daher würde ich gerne mal eure Hilfe in Anspruch nehmen :-)
Ich bräuchte ein script welches in einem speziellen Verzeichniss fix numerierte unterverzeichnisse durchgeht (1,2,3,4,5,6,....) (keine ahnung wieviele das sein werden), in die einzelnen verzeichnisse reingeht, die files welche da drinnen sind packt (RAR), das verzeichniss verlässt und mit den Nächsten Verzeichniss weitermacht.
Mein Gedankengang .....
1.) Ich brauch eine funktion welche mal überprüft welche verzeichnisse existieren und diese dann in ein array speichert. (keine ahnung wie das aussehen soll)
2.)
cd $Verzeichniss
rar <parameter>
cd ..
usw.
ich nehme gerne ideen an und im notfall auch ein fertiges script aber mir wären lösungsansätze bzw. eine hilfe mal lieber so das ich das ganze auch verstehe :-)
Danke mal im Vorraus.
lg
ich hoffe das mir hier jemand helfen kann - Da ich mich erst seit rund 2 Monaten intensiv mit Linux beschäftige sind meine kenntnisse noch nicht so berauschend daher würde ich gerne mal eure Hilfe in Anspruch nehmen :-)
Ich bräuchte ein script welches in einem speziellen Verzeichniss fix numerierte unterverzeichnisse durchgeht (1,2,3,4,5,6,....) (keine ahnung wieviele das sein werden), in die einzelnen verzeichnisse reingeht, die files welche da drinnen sind packt (RAR), das verzeichniss verlässt und mit den Nächsten Verzeichniss weitermacht.
Mein Gedankengang .....
1.) Ich brauch eine funktion welche mal überprüft welche verzeichnisse existieren und diese dann in ein array speichert. (keine ahnung wie das aussehen soll)
2.)
cd $Verzeichniss
rar <parameter>
cd ..
usw.
ich nehme gerne ideen an und im notfall auch ein fertiges script aber mir wären lösungsansätze bzw. eine hilfe mal lieber so das ich das ganze auch verstehe :-)
Danke mal im Vorraus.
lg
Re: Script - Rarfiles erstellen - für jedes verzeichniss
Da Du lernen möchtest: http://www.tldp.org/LDP/abs/html/index.html
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Re: Script - Rarfiles erstellen - für jedes verzeichniss
*HUST*
lernen möchte ich schon aber nicht gleich alles auf einmal :-) (Die seite hab ich aber mal in einem anderen fenster offen und gebookmarkt).
Ansätze oder infos wonach ich suchen soll wären da etwas besser.
momentan lese ich mir grad die man page vom find durch.
mit find -empty hab ich mal die verzeichnisse (wenn ich das richtig verstanden habe.
kann mir mal jemand sagen wie ich so ein array per .sh erstelle und die ausgabe von find dort reinspeichern kann?
also find -empty > $IRRGENDWAS würde ja alles auf einmal in diese variable reinspeichern.
danke im vorraus.
lernen möchte ich schon aber nicht gleich alles auf einmal :-) (Die seite hab ich aber mal in einem anderen fenster offen und gebookmarkt).
Ansätze oder infos wonach ich suchen soll wären da etwas besser.
momentan lese ich mir grad die man page vom find durch.
mit find -empty hab ich mal die verzeichnisse (wenn ich das richtig verstanden habe.
kann mir mal jemand sagen wie ich so ein array per .sh erstelle und die ausgabe von find dort reinspeichern kann?
also find -empty > $IRRGENDWAS würde ja alles auf einmal in diese variable reinspeichern.
danke im vorraus.
Re: Script - Rarfiles erstellen - für jedes verzeichniss
Schon, bringt nur nix:kann mir mal jemand sagen wie ich so ein array per .sh erstelle und die ausgabe von find dort reinspeichern kann?
Code: Select all
dasarray=`find -empty`Unfug, damit hastalso find -empty > $IRRGENDWAS würde ja alles auf einmal in diese variable reinspeichern.
a) eine Fehlermeldung bekommen
b) irgendwelche Dateien überschrieben(Weiß ja nicht was da in $IRRGENDWAS drin stand).
Re: Script - Rarfiles erstellen - für jedes verzeichniss
Aha. danke hab mich mit
array = (`find -empty`) herumgeschlagen aber das hatte so nicht funktioniert.
ok jetzt ist das ganze mal hoffentlich im array drinnen und die kann ich wenn ich das richtig verstanden habe mit
dasarray[1] usw ansprechen.
(btw. hab ich schon mal geschrieben, ich hab von dem sogut wie keine ahnung? In den kursen die ich hinter mir habe wurde das ganze leider nur sowas von kurz angesprochen das ich da keine wirklichen informationen rausziehen konnte.
Aber ok. ich hab jetzt mal die verzeichnisse in diesem array. jetzt muss das ganze abgearbeitet werden.
cd <Verzeichniss>
rar <parameter>
cd ../<Verzeichniss>
aehm .... ich hab jetzt echt keine ahnung mehr. (jaja ich hatte nie eine ^^) - ich weiss leider nicht wie das ganze in dem array abgearbeitet wird - ich hab keine ahnung wie das aussehen soll -> ich habe keine ahnung wie ich das ganze in anderen scripten finden soll :-(
könnte mal wieder bitte jemand so nett sein? :-)
array = (`find -empty`) herumgeschlagen aber das hatte so nicht funktioniert.
ok jetzt ist das ganze mal hoffentlich im array drinnen und die kann ich wenn ich das richtig verstanden habe mit
dasarray[1] usw ansprechen.
(btw. hab ich schon mal geschrieben, ich hab von dem sogut wie keine ahnung? In den kursen die ich hinter mir habe wurde das ganze leider nur sowas von kurz angesprochen das ich da keine wirklichen informationen rausziehen konnte.
Aber ok. ich hab jetzt mal die verzeichnisse in diesem array. jetzt muss das ganze abgearbeitet werden.
cd <Verzeichniss>
rar <parameter>
cd ../<Verzeichniss>
aehm .... ich hab jetzt echt keine ahnung mehr. (jaja ich hatte nie eine ^^) - ich weiss leider nicht wie das ganze in dem array abgearbeitet wird - ich hab keine ahnung wie das aussehen soll -> ich habe keine ahnung wie ich das ganze in anderen scripten finden soll :-(
könnte mal wieder bitte jemand so nett sein? :-)
Re: Script - Rarfiles erstellen - für jedes verzeichniss
in diese Richtung:
Findet aber nur Directories mit einstelligen Zahlen...Das musst du noch entsprechend erweitern.
Code: Select all
find /path -type d -name "[[:digit:]]" -execdir DEINRARKOMMANDO "{}" ";"
Re: Script - Rarfiles erstellen - für jedes verzeichniss
Code: Select all
array=(`find -empty`)Sonst:
Code: Select all
dasarray=`find -empty`
for i in $dasarray ; do echo "$i" ; done
jürgens Beispiel hilft Dir vielleicht mehr weiter als das Spielen mit indizies. Aber wie Du willst ...
Re: Script - Rarfiles erstellen - für jedes verzeichniss
Danke mal für eure infos ....
also ich hab es mal so probiert
dasarray=`find -maxdepth 1 -type d -print0 `
for i in $dasarray ; do cd "$i" ; /home/pgw/Tools/rar/rar a "$i" . ; cd .. ; done
mit dem -empty bei find komme ich ja nicht sehr weit da ja nur leere verzeichnisse angezeigt werden :-) - also hab ich den befehl mal abgeändert.
Jetzt hab ich aber das problem, das er mir ./abc ./bcd usw anzeigt. mit dem ./ hab ich ja dann ein problem. Ich versuch mich schon die ganze zeit durch cut und awk durchzulesen aber ich seh mich da nicht so ganz aus.
kann mir bitte jemand sagen wie ich das ./ rauswerfen kann? :-) also find -maxdepth 1 -type d -print0 | <befehl>
danke.
also ich hab es mal so probiert
dasarray=`find -maxdepth 1 -type d -print0 `
for i in $dasarray ; do cd "$i" ; /home/pgw/Tools/rar/rar a "$i" . ; cd .. ; done
mit dem -empty bei find komme ich ja nicht sehr weit da ja nur leere verzeichnisse angezeigt werden :-) - also hab ich den befehl mal abgeändert.
Jetzt hab ich aber das problem, das er mir ./abc ./bcd usw anzeigt. mit dem ./ hab ich ja dann ein problem. Ich versuch mich schon die ganze zeit durch cut und awk durchzulesen aber ich seh mich da nicht so ganz aus.
kann mir bitte jemand sagen wie ich das ./ rauswerfen kann? :-) also find -maxdepth 1 -type d -print0 | <befehl>
danke.
Re: Script - Rarfiles erstellen - für jedes verzeichniss
-print0 solltest du nur verwenden, wenn das Programm, das du über die Pipe-Verbindest auch mit 0-Terminierten Argumenten umgehen kann, also z.b. xargs -0.
Du solltest es übrigens nicht unnötig kompliziert machen:Du kannst mit -execdir für jedes Gefundene Ergebnis ein Programm aufrufen. Cut/awk brauchst du für diese Aufgabenstellung nicht.
Du solltest es übrigens nicht unnötig kompliziert machen:Du kannst mit -execdir für jedes Gefundene Ergebnis ein Programm aufrufen. Cut/awk brauchst du für diese Aufgabenstellung nicht.
Re: Script - Rarfiles erstellen - für jedes verzeichniss
Code: Select all
dasarray="$(ls -Ap | grep / | sed 's|/$||g')"
for i in $dasarray; do
cd "$i" &&
/home/pgw/Tools/rar/rar a "$i" . &&
cd ..;
done
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Re: Script - Rarfiles erstellen - für jedes verzeichniss
Code: Select all
find /DEINPFADZUDENDIRS -type d -name "[[:digit:]]" -o -name "[[:digit:]][[:digit:]]" -execdir rar a -r /{}.rar {} ;Re: Script - Rarfiles erstellen - für jedes verzeichniss
Das ist perfekt. Mit einem -maxdepth 1 dazu ist es ganz perfekt. Sonst bekommst Du Doppel(find und rar sind da rekursiv *g* ).
Dann tut
selbiges. 8)
noch dreistellige dazu:
und dann ist da noch jener hier, dann ist's aber gut:
Dann tut
Code: Select all
for i in DEINPFAD/{[0-9],}[0-9]/ ; do rar a -r `basename $i`.rar ${i%%/}; donenoch dreistellige dazu:
Code: Select all
for i in DEINPFAD/{[0-9],[0-9][0-9],}[0-9]/ ; do rar a -r `basename $i`.rar ${i%%/}; doneCode: Select all
shopt -s extglob; for i in DEINPFAD/*([0-9])/ ; do rar a -r `basename $i`.rar ${i%%/}; doneRe: Script - Rarfiles erstellen - für jedes verzeichniss
Hallo,
war leider krank und war nicht wirklich in der lage das ganze durch zu testen.
Jetzt mal schnell die Arbeit aufarbeiten und dann schau ich mir das ganze gleich an.
Danke mal für die Hilfe bis jetzt!
lg
war leider krank und war nicht wirklich in der lage das ganze durch zu testen.
Jetzt mal schnell die Arbeit aufarbeiten und dann schau ich mir das ganze gleich an.
Danke mal für die Hilfe bis jetzt!
lg
