johannes hoerle
ich möchte ein skript bauen, damit ca. 100 verzeichnisse in 100 entsprechende .tar-files gepackt werden. damit ich die nicht alle einzeln eingeben muss, waere ein skript ganz hilfreich.
Wenn alle Unterverzeichnisse des aktuellen Verzeichnisses gepackt werden sollen, dann geht das z.B. ganz einfach mit dieser Schleife: for i in *; do [ -d "$i" ] && tar cvfz "$i.tgz" "$i"; done In anderen Worten: Fuer jeden Namen im aktuellen Verzeichnis, bei dem es sich um ein Unterverzeichnis handelt (-d = Directory), wird das entsprechende tgz-File erzeugt. Das kann so direkt auf der Kommandozeile eingegeben werden. Etwas allgemeiner ginge es mit folgendem Skript: #!/bin/bash for i in "$@"; do if [ -d "$i" -a ! -e "$i.tgz" ]; then tar cvfz "$i.tgz" "$i" else echo >&2 "$i kein Verzeichnis oder $i.tgz existiert schon." fi done Dieses Skript kann man dann mit den Namen aller zu packenden Verzeichnisse als Argumente aufrufen (auch Muster moeglich). In der Schleife wird fuer alle angegebenen Namen ein entsprechendes Archiv erstellt, falls der Name ein Verzeichnis bezeichnet (-d) und (-a) das zugehoerige Archiv noch nicht (!) existiert (-e). Alle wichtigen Infos dazu gibt's irgendwo in ca. 80 Seiten man-Page zur bash ;-) Eilert -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Eilert Brinkmann -- Universitaet Bremen -- FB 3, Informatik eilert@informatik.uni-bremen.de - eilert@tzi.org - eilert@linuxfreak.com http://www.informatik.uni-bremen.de/~eilert/ --------------------------------------------------------------------- To unsubscribe, e-mail: suse-linux-unsubscribe@suse.com For additional commands, e-mail: suse-linux-help@suse.com