...ins Skripten wäre es Gewinn an Stil, die langen Optionen zu benutzen, sie sind so meist besser lesbar und in Skripten muß man es ja nur einmal tippen...
rsync -aPvz ... na was mag das wohl machen?
rsync --archive --partial --progress --verbose --compress ... werde ich auch in 3 Monaten noch verstehen, wenn ich mal wieder ins Skript gugge...
Als Fragment hier eine Möglichkeit, die ohne temporäre Files auskommt: (Ich hoffe, die Zeilen werden nachher nicht so zerhackt wie hier im Eingabeformular...)
Wenn man sie denn verwenden will, sollte man seine Skripte so schreiben, dass sie sie auch löschen, wenn das Skript mal mittels kill abgeschossen wird, und dass zweitens zwei parallel laufende Instanzen des Skripts sich nicht in die Quere kommen. Schliesslich befinden wir uns auf einem Multiuser/Multitasking-OS, da kann so was schon mal vorkommen.
Als Dateinamen würde ich vorschlagen, "/tmp/gzip.$$" und "/tmp/bzip.$$" zu verwenden, dann hängt die Shell ihre PID an die Dateinamen an. Da jeder Prozess eine eindeutige PID hat, sollten auch die Dateien eindeutig sein.
Als erste Zeile des Skriptes (auf jeden Fall vor den file-Aufrufen) sollte man die folgende Zeile einsetzen:
trap 'rm -f /tmp/gzip.$$ /tmp/bzip.$$' 0
Dieses Kommando führt die Shell beim Beenden durch - egal, ob sie einfach ans Ende des Skripts gekommen ist, auf ein "exit"-Statement gelaufen ist oder mittels kill abgeschossen wurde. Dann kannman sich die letzten beiden rm-Calls auch sparen.
tar -xvI $1 macht das selbe wie bunzip2 -c $1 tar xv
aber ansonsten nettes script.
bye
/ Bernd /
--
CU, VL
rsync -aPvz ... na was mag das wohl machen?
rsync --archive --partial --progress --verbose --compress ... werde ich auch in 3 Monaten noch verstehen, wenn ich mal wieder ins Skript gugge...
ich hab grad nachgesehen, ich hab 1.13.17 ( auf Red Hat 7 ) laufen. Damit geht es.
bye
/ Bernd /
(Ich hoffe, die Zeilen werden nachher nicht so zerhackt wie hier im Eingabeformular...)
FILETYPE=$(file "$f");
echo $FILETYPE | grep -q "gzip compressed data\|compress\'d data" && opt=--u
echo $FILETYPE | grep -q "bzip2 compressed data" && opt=--bzip2;
tar $opt -tvf $f
Wenn man sie denn verwenden will, sollte man seine Skripte so schreiben, dass sie sie auch löschen, wenn das Skript mal mittels kill abgeschossen wird, und dass zweitens zwei parallel laufende Instanzen des Skripts sich nicht in die Quere kommen. Schliesslich befinden wir uns auf einem Multiuser/Multitasking-OS, da kann so was schon mal vorkommen.
Als Dateinamen würde ich vorschlagen, "/tmp/gzip.$$" und "/tmp/bzip.$$" zu verwenden, dann hängt die Shell ihre PID an die Dateinamen an. Da jeder Prozess eine eindeutige PID hat, sollten auch die Dateien eindeutig sein.
Als erste Zeile des Skriptes (auf jeden Fall vor den file-Aufrufen) sollte man die folgende Zeile einsetzen:
trap 'rm -f /tmp/gzip.$$ /tmp/bzip.$$' 0
Dieses Kommando führt die Shell beim Beenden durch - egal, ob sie einfach ans Ende des Skripts gekommen ist, auf ein "exit"-Statement gelaufen ist oder mittels kill abgeschossen wurde. Dann kannman sich die letzten beiden rm-Calls auch sparen.
bzcat $1 | tar xv
gruss
das gnu
kleine Funktion im .bashrc.
Nicht besonders elegant, aber
sehr praktisch.
function t () {
if [ ! -e "$1" ]; then
echo 'no such file'
elif echo "$1" | grep -s '\.g\?[zZ]$' ; then
zcat "$1" | less
elif echo "$1" | grep -s '\.\([1-9]\|man\)$' ; then
nroff -man "$1" | less
elif echo "$1" | grep -s '\.pgp$' ; then
pgp "$1"
filename=`dirname "$1"`
less $filename/`basename "$1" '\.pgp'`
rm -i $filename/`basename "$1" '\.pgp'`
else
less $1
fi
}