ls -l zeigt mir den Owner mit einer Reihe von anderen Informationen. Gibt es eine Möglichkeit den Owner "direkt" abzufragen? Wie frage ich den Owner des tatsächlichen Directories ab, wenn ein Link abgefragt wird? Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
On Fri, Jul 07, 2006 at 01:56:03PM +0200, Al Bogner wrote:
Wie frage ich den Owner des tatsächlichen Directories ab, wenn ein Link abgefragt wird?
wiersig@peter:~$ ls -l test lrwxrwxrwx 1 wiersig wiersig 4 2006-07-07 14:12 test -> /tmp wiersig@peter:~$ ls -ld test/ drwxrwxrwt 10 root root 296 2006-07-07 13:12 test/ -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Freitag, 7. Juli 2006 14:12 schrieb Peter Wiersig:
On Fri, Jul 07, 2006 at 01:56:03PM +0200, Al Bogner wrote:
Wie frage ich den Owner des tatsächlichen Directories ab, wenn ein Link abgefragt wird?
wiersig@peter:~$ ls -l test lrwxrwxrwx 1 wiersig wiersig 4 2006-07-07 14:12 test -> /tmp wiersig@peter:~$ ls -ld test/ drwxrwxrwt 10 root root 296 2006-07-07 13:12 test/
Danke, war schon klar. Mich würde interessieren, ob ich mir den cut-Befehl, den ich bei ls brauchen würde, sparen kann. Und wenn es so einen Befehl geben sollte, dann wäre eben die Frage gewesen, wie das dann bei Links aussieht. Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Al Bogner schrieb:
ls -l zeigt mir den Owner mit einer Reihe von anderen Informationen. Gibt es eine Möglichkeit den Owner "direkt" abzufragen?
Wie frage ich den Owner des tatsächlichen Directories ab, wenn ein Link abgefragt wird?
Al
stat -L dir oder für die Weiterverarbeitung in der Bash z.B: eval $(stat -L --format="PERM=%a;OWNER=%U;GROUP=%G;INODE=%i" dir) echo $OWNER ... siehe: info:coreutils/stat invocation -- Gruss Bernd -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Freitag, 7. Juli 2006 13:56 schrieb Al Bogner:
ls -l zeigt mir den Owner mit einer Reihe von anderen Informationen. Gibt es eine Möglichkeit den Owner "direkt" abzufragen?
Wie frage ich den Owner des tatsächlichen Directories ab, wenn ein Link
Ich überlege mir gerade, ob find eine Alternative wäre. Kannich an find einen User übergeben? Also irgendwas mit `whoami` Ich habe auch noch ein Problem mit -maxdepth Beispiel: /ordner/ /ordner/1/ /ordner/1/a/ /ordner/2/ /ordner/2/a/ Gefunden werden soll /ordner/1/ und /ordner/2/, nicht aber /ordner/, /ordner/1/a/ und /ordner/2/a/. /ordner/1/ und /ordner/2/ sollen nur gefunden werden, wenn sie einem bestimmten User gehören. Das Ergebnis soll dann einem Script als Option übergeben werden, also etwa so: find ... -type d -print0 | xargs ... Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Hallo, Am Fre, 07 Jul 2006, Al Bogner schrieb:
Am Freitag, 7. Juli 2006 13:56 schrieb Al Bogner:
ls -l zeigt mir den Owner mit einer Reihe von anderen Informationen. Gibt es eine Möglichkeit den Owner "direkt" abzufragen?
Wie frage ich den Owner des tatsächlichen Directories ab, wenn ein Link
Ich überlege mir gerade, ob find eine Alternative wäre.
Ja. Vorallem dort wo es kein 'stat' gibt.
Kannich an find einen User übergeben? Also irgendwas mit `whoami`
-uid `id -u` -user `whoami`
Ich habe auch noch ein Problem mit -maxdepth
Beispiel:
/ordner/ /ordner/1/ /ordner/1/a/ /ordner/2/ /ordner/2/a/
Gefunden werden soll /ordner/1/ und /ordner/2/, nicht aber /ordner/, /ordner/1/a/ und /ordner/2/a/.
-type d -mindepth 1 -maxdepth 1
/ordner/1/ und /ordner/2/ sollen nur gefunden werden, wenn sie einem bestimmten User gehören.
find /ordner/ -type d -mindepth 1 -maxdepth 1 -uid 1000 -print0 find /ordner/ -type d -mindepth 1 -maxdepth 1 -user al -print0 Wenn /ordner/1 usw. auch symlinks auf Verzeichnisse sein duerfen ersetze das '-type d' durch \( -type d -o -xtype d \) oder generell symlinks: \( -type d -o -type l \)
Das Ergebnis soll dann einem Script als Option übergeben werden, also etwa so:
find ... -type d -print0 | xargs ...
Ggfs. hilft dir schon -ls, -printf (z.B. -printf '%l\0')... Und man kann mit dem -printf auch ein script erzeugen das man an (ba)sh pipen kann. -dnh -- Wenn diese Liste über Mailman betrieben würde, dann würden wir den ganzen Tag nichts anderes machen als eine Menschenkette zum nächsten Computerladen aufrechtzuerhalten um RAM in einem konstanten fluss in lists.suse.com einzubauen ;) -- suse-linux-owner, ebenda -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Freitag, 7. Juli 2006 17:07 schrieb David Haller:
find /ordner/ -type d -mindepth 1 -maxdepth 1 -user al -print0
Das passt mir schon ganz gut. IMO darf aber -type d nicht vor -mindepth stehen. find: warning: you have specified the -mindepth option after a non-option argument -type, but options are not positional (-mindepth affects tests specified before it as well as those specified after it). Please specify options before other arguments. find: warning: you have specified the -maxdepth option after a non-option argument -type, but options are not positional (-maxdepth affects tests specified before it as well as those specified after it). Please specify options before other arguments. Ich habe jetzt mal das als 1. Teil: find /ordner/ -mindepth 1 -maxdepth 1 -user `whoami` -type d Um das an xargs zu übergeben brauche ich doch: find /ordner/ -mindepth 1 -maxdepth 1 -user `whoami` -type d -print0 oder? D.h. die Argument dürfen kein return haben. Nun möchte ich aber dass, die Liste auch noch sortiert wird. Wie baue ich das in den find-Befehl ein? Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Hallo, Am Fre, 07 Jul 2006, Al Bogner schrieb:
Am Freitag, 7. Juli 2006 17:07 schrieb David Haller:
find /ordner/ -type d -mindepth 1 -maxdepth 1 -user al -print0
Das passt mir schon ganz gut. IMO darf aber -type d nicht vor -mindepth stehen.
Meinem find ist das wurst :) $ find --version GNU find version 4.1
Ich habe jetzt mal das als 1. Teil:
find /ordner/ -mindepth 1 -maxdepth 1 -user `whoami` -type d
Um das an xargs zu übergeben brauche ich doch:
find /ordner/ -mindepth 1 -maxdepth 1 -user `whoami` -type d -print0 oder? D.h. die Argument dürfen kein return haben.
Kommt drauf an. Wenn die Dateinamen _definitiv_ keine Zeilenumbrueche enthalten kannst du problemlos das normale '\n' als Argumenttrenner verwenden. Also: find ... -print | xargs -r blubb Wenn aber Zeilenumbrueche vorkommen koennen empfiehlt sich '\0' als Trenner: find ... -print0 | xargs -r -0 blubb
Nun möchte ich aber dass, die Liste auch noch sortiert wird. Wie baue ich das in den find-Befehl ein?
Find selbst kann nicht sortieren. find ... | sort | xargs Oder schreib mal, welche Ausgabe du willst und was du damin machen willst. Evtl. ist es einfacher per '-printf' ein shellscript zu generieren und das an die shell zu pipen... -dnh -- "[Every program, application,] *everything* eventually launches a website (or N of them) in one way or other." -- de Boer's corollary to Skif's Internet Theorem -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Samstag, 8. Juli 2006 00:35 schrieb David Haller: Hallo David,
Am Fre, 07 Jul 2006, Al Bogner schrieb:
Am Freitag, 7. Juli 2006 17:07 schrieb David Haller:
find /ordner/ -type d -mindepth 1 -maxdepth 1 -user al -print0
Das passt mir schon ganz gut. IMO darf aber -type d nicht vor -mindepth stehen.
Meinem find ist das wurst :)
Dann mach mal ein Update :-)
$ find --version GNU find version 4.1
find --version GNU find Version 4.2.27 Features enabled: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION
Ich habe jetzt mal das als 1. Teil:
find /ordner/ -mindepth 1 -maxdepth 1 -user `whoami` -type d
Um das an xargs zu übergeben brauche ich doch:
find /ordner/ -mindepth 1 -maxdepth 1 -user `whoami` -type d -print0 oder? D.h. die Argument dürfen kein return haben.
Kommt drauf an. Wenn die Dateinamen _definitiv_ keine Zeilenumbrueche enthalten kannst du problemlos das normale '\n' als Argumenttrenner verwenden. Also:
Ich habe mich nicht getraut es auszuprobieren.
find ... -print | xargs -r blubb
Wenn aber Zeilenumbrueche vorkommen koennen empfiehlt sich '\0' als Trenner:
Sollten zwar nicht vorkommen, aber vielleicht passiert es mal.
find ... -print0 | xargs -r -0 blubb
Nun möchte ich aber dass, die Liste auch noch sortiert wird. Wie baue ich das in den find-Befehl ein?
Find selbst kann nicht sortieren.
find ... | sort | xargs
Ob das funktionieren kann, war ich mir unsicher.
Oder schreib mal, welche Ausgabe du willst und was du damin machen willst. Evtl. ist es einfacher per '-printf' ein shellscript zu generieren und das an die shell zu pipen...
Ich versuche es in Kürze. Der Owner hat Schreibrecht, Gruppenmitglieder haben Leserecht. Manchmal muss der Owner ein Script ausführen, das alle Sub-Verzeichnisse eines Verzeichnisses abarbeitet. Der User hat aber auch Links zu Verzeichnissen anderer User, die nicht beschreibar aber lesbar sind, sodass ich auf die Verzeichnisse einschränke, die dem User gehören. In der Regel sind einfach alle Links tabu. Soweit lässt sich das ja mit der besprochenen Find-Syntax abfragen. Es wäre nun einfach wünschenswert, dass das Script die Verzeichnisse sortiert abarbeitet. Bei find ... -print0 ist ja kein Sort möglich. find /dir_nfs/maindir/user -mindepth 1 -maxdepth 1 -user `whoami` -type d | sort | xargs -r /usr/local/bin/test.sh /usr/local/bin/test.sh erwartet als Parameter den vollen Pfad eines Verzeichnisses. xargs: /usr/local/bin/test.sh: exited with status 255; aborting #!/bin/bash #/usr/local/bin/test.sh echo "ok" exit -1 Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Samstag, 8. Juli 2006 01:47 schrieb Al Bogner:
find /dir_nfs/maindir/user -mindepth 1 -maxdepth 1 -user `whoami` -type d | sort | xargs -r /usr/local/bin/test.sh
/usr/local/bin/test.sh erwartet als Parameter den vollen Pfad eines Verzeichnisses.
xargs: /usr/local/bin/test.sh: exited with status 255; aborting
Ich sehe gerade, das funktioniert ohne sort auch nicht. Das Script wird für 1 Verzeichnis so aufgerufen: /usr/local/bin/test.sh /dir_nfs/maindir/user/irgeneindir Ein find ergibt zB /dir_nfs/maindir/user/irgeneindir /dir_nfs/maindir/user/irgeneindir2 /dir_nfs/maindir/user/irgeneindir3 Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Hallo, Am Sam, 08 Jul 2006, Al Bogner schrieb:
Am Samstag, 8. Juli 2006 00:35 schrieb David Haller:
Am Fre, 07 Jul 2006, Al Bogner schrieb:
Am Freitag, 7. Juli 2006 17:07 schrieb David Haller:
find /ordner/ -type d -mindepth 1 -maxdepth 1 -user al -print0
Das passt mir schon ganz gut. IMO darf aber -type d nicht vor -mindepth stehen.
Meinem find ist das wurst :)
Dann mach mal ein Update :-)
$ find --version GNU find version 4.1
find --version GNU find Version 4.2.27 Features enabled: D_TYPE O_NOFOLLOW(enabled) LEAF_OPTIMISATION
Wieso sollte ich? Zumal: wieso sollte ich auch die anderen coreutils updaten? Zumal die bei mir noch in ganz anderen RPMs stecken, die ich dann auch noch aktualisieren muesste...
Ich habe jetzt mal das als 1. Teil:
find /ordner/ -mindepth 1 -maxdepth 1 -user `whoami` -type d
Um das an xargs zu übergeben brauche ich doch:
find /ordner/ -mindepth 1 -maxdepth 1 -user `whoami` -type d -print0 oder? D.h. die Argument dürfen kein return haben.
Kommt drauf an. Wenn die Dateinamen _definitiv_ keine Zeilenumbrueche enthalten kannst du problemlos das normale '\n' als Argumenttrenner verwenden. Also:
Ich habe mich nicht getraut es auszuprobieren.
Feigling! Kannst ja in ~/tmp/ oder so was anlegen...
find ... -print | xargs -r blubb
Wenn aber Zeilenumbrueche vorkommen koennen empfiehlt sich '\0' als Trenner:
Sollten zwar nicht vorkommen, aber vielleicht passiert es mal.
Ok.
find ... -print0 | xargs -r -0 blubb
Nun möchte ich aber dass, die Liste auch noch sortiert wird. Wie baue ich das in den find-Befehl ein?
Find selbst kann nicht sortieren.
find ... | sort | xargs
Ob das funktionieren kann, war ich mir unsicher.
s.u.
Oder schreib mal, welche Ausgabe du willst und was du damin machen willst. Evtl. ist es einfacher per '-printf' ein shellscript zu generieren und das an die shell zu pipen...
Ich versuche es in Kürze.
Der Owner hat Schreibrecht, Gruppenmitglieder haben Leserecht. Manchmal muss der Owner ein Script ausführen, das alle Sub-Verzeichnisse eines Verzeichnisses abarbeitet.
Und was macht? Irgendwie Datein umherschieben / umbenennen oder sonst irgendwas komplexeres? Oder nur z.B. einfach z.B. ein "chown" oder aufruft?
Der User hat aber auch Links zu Verzeichnissen anderer User, die nicht beschreibar aber lesbar sind, sodass ich auf die Verzeichnisse einschränke, die dem User gehören. In der Regel sind einfach alle Links tabu. Soweit lässt sich das ja mit der besprochenen Find-Syntax abfragen.
Genau. Ein find . -mindepth 1 -maxdepth 1 -type d findet schonmal keine symlinks, egal mit welchen Rechten.
Es wäre nun einfach wünschenswert, dass das Script die Verzeichnisse sortiert abarbeitet.
Bei find ... -print0 ist ja kein Sort möglich.
'sort --help' zu lesen ist aufschlussreich... sort -z
find /dir_nfs/maindir/user -mindepth 1 -maxdepth 1 -user `whoami` -type d | sort | xargs -r /usr/local/bin/test.sh
/usr/local/bin/test.sh erwartet als Parameter den vollen Pfad eines Verzeichnisses.
xargs: /usr/local/bin/test.sh: exited with status 255; aborting
#!/bin/bash #/usr/local/bin/test.sh echo "ok" exit -1
Ja und? Sieht doch ok aus. Du steigst doch mit einem (unsigned char)-1 = 255 als exitcode aus dem script aus. Warum das "ok" nicht durchkommt kann ich nicht aus dem hohlen Bauch erklaeren, da muesste ich die Ausgabe nach dem '| sort |' sehen... Die Frage ist aber immer noch: was soll das script machen? Und du musst das script uebrigens auch nicht auf ein Argument einschraenken: ==== $ cd /tmp/test/kranke_dateinamen/ /tmp/test/kranke_dateinamen $ cat /test.sh #!/bin/sh for i; do echo "»»»$i«««"; done /tmp/test/kranke_dateinamen $ find . -type f -print0 | sort -z \ | xargs -r -0 ./test.sh | sed 's/^M/^M/g' »»»./"a"««« »»»./"a'" \n"b"'««« »»»./"a'"\n"b"'««« »»»./"foo" and "bar"««« »»»./'"bar"'««« »»»./'"foo"'««« »»»./'a^M b'««« »»»./'a b'««« »»»./'a'««« »»»./'and'««« »»»./'b'««« »»»./'foo; ls -rf'««« »»»./'x y'««« »»»./'ß ä'««« »»»./X Y/XY.sh««« »»»./a««« »»»./a b««« »»»./a^M b««« »»»./a b««« »»»./a * ; b««« »»»./a * b««« »»»./a * b««« »»»./a b««« »»»./b««« »»»./c««« »»»./d««« »»»./foo bar««« »»»./foo; ls -rf««« »»»./test.sh««« »»»./ß ä««« ==== Das 'sed' ersetzt nur in der Ausgabe die '\r' (= Ctrl-M, ein Zeichen) durch die 2 Zeichen '^M' damit man diese in der Ausgabe erkennt... Wie du siehst sind da so ziemlich alle Schwierigkeiten enthalten die in Dateinamen auftreten koennen[1] und die Ausgabe stimmt. Du kannst dich in der Schleife also austoben (wenn du sauber quotest!). Und mit Verzeichnisnamen geht das natuerlich genauso. Achso, nochwas: Je nachdem was du noch im script machen willst -- oder vorher oder nachher, z.B. "ausfiltern" oder sortieren -- kann es sinnvoll sein das ganze als ein Perl-script zu realisieren. Dort kann man mittels 'File::Find' und sonstigem nach praktisch jedem Kriterium suchen und sortieren und das meiste (z.B. chown usw.) kann man dann auch ohne weitere externe Prozesse erledigen. Und bei alledem muss man sich nicht um das quoten von Dateinamen usw. kuemmern. Da darf dann wirklich alles ausser '\0' und '/' dabei sein. Nur beim Aufruf aus der shell mit den abzusuchenden Verzeichnissen muss man ggfs. quoten. Hier mal ein etwas komplexeres Beispiel (in ein paar Minuten geschrieben) zur Veranschaulichung und zum Nachvollziehen *g*: ==== #!/usr/bin/perl -w use strict; use POSIX; use File::Find; use File::Glob ':glob'; POSIX::tzset(); my ($std, $dst) = POSIX::tzname(); my $isdst = ($std eq $dst ? 0 : 1); my %SEEN; sub wanted { return undef unless -f $_; if( /^(.*?)_(\d{2})\.(\d{2}).(\d{2})_(\d{2})-(\d{2})_(.*)/ ) { my ($Y, $M, $D, $h, $m) = ( "20" . $2, $3, $4, $5, $6); my $mtime = POSIX::mktime( 0, $m, $h, $D, $M-1, $Y - 1900, 0, 0, $isdst); if(defined $mtime) { $SEEN{$mtime}{name} = $_; $SEEN{$mtime}{date} = "${Y}_${M}_${D} ${h}:${m}"; } } else { warn "cannot find date in '$_'\n"; return; } } $#ARGV >= 0 || push(@ARGV, "."); @ARGV = map { bsd_glob( $_ . '/seen*' ); } @ARGV; find( { wanted => \&wanted, follow => 1, }, @ARGV ); print join("\n", map { $SEEN{$_}{date} . " " . $SEEN{$_}{name}; } sort { $a <=> $b || uc($SEEN{$a}{name}) cmp uc($SEEN{$b}{name}) } keys %SEEN), "\n"; ==== Statt der sortierten Ausgabe kann man eben noch anderen Unfug anstellen :) Noch Fragen? *hihi* & *SCNR* -dnh [1] ok, z.B. \b = ^H und ^W fehlen... -- Dinner not ready...(A)bort (R)etry (P)izza -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Samstag, 8. Juli 2006 02:21 schrieb David Haller: Hallo David!
Am Sam, 08 Jul 2006, Al Bogner schrieb:
Am Samstag, 8. Juli 2006 00:35 schrieb David Haller:
Am Fre, 07 Jul 2006, Al Bogner schrieb:
Am Freitag, 7. Juli 2006 17:07 schrieb David Haller:
find /dir_nfs/maindir/user -mindepth 1 -maxdepth 1 -user `whoami` -type d | sort | xargs -r /usr/local/bin/test.sh
/usr/local/bin/test.sh erwartet als Parameter den vollen Pfad eines Verzeichnisses.
xargs: /usr/local/bin/test.sh: exited with status 255; aborting
#!/bin/bash #/usr/local/bin/test.sh echo "ok" exit -1
Ja und? Sieht doch ok aus. Du steigst doch mit einem (unsigned char)-1 = 255 als exitcode aus dem script aus. Warum das "ok" nicht durchkommt kann ich nicht aus dem hohlen Bauch erklaeren,
Vermutlich habe ich da Mist gebaut und das Script auf einem anderen Rechner per ssh laufen lassen. Das kommt davon, wenn man mehrere Konsolen mit verschiedenen Rechnern offen hat. Es scheint nun zu klappen. Ich musser aber noch intensiver testen. Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Samstag, 8. Juli 2006 10:27 schrieb Al Bogner:
Es scheint nun zu klappen. Ich musser aber noch intensiver testen.
Nein, es passt doch nicht. cat /usr/local/bin/testscript2.sh #!/bin/bash echo $1 cat /usr/local/bin/try_test.sh #!/bin/bash dir="/tmp/xargstest" dir1="$dir/ordner1" dir2="$dir/ordner2" dir3="$dir/ordner3" mkdir -p "$dir3" mkdir -p "$dir1" mkdir -p "$dir2" echo "ohne sort" find "$dir" -mindepth 1 -maxdepth 1 -user `whoami` -type d echo "mit sort" find "$dir" -mindepth 1 -maxdepth 1 -user `whoami` -type d | sort echo "mit sort und xargs" find "$dir" -mindepth 1 -maxdepth 1 -user `whoami` -type d | sort | xargs -r /usr/local/bin/testscript2.sh try_test.sh-Ausgabe: ohne sort /tmp/xargstest/ordner3 /tmp/xargstest/ordner1 /tmp/xargstest/ordner2 mit sort /tmp/xargstest/ordner1 /tmp/xargstest/ordner2 /tmp/xargstest/ordner3 mit sort und xargs /tmp/xargstest/ordner1 Es wird also nur der _1._ Ordner abgearbeitet. Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Hallo, Am Sam, 08 Jul 2006, Al Bogner schrieb:
Am Samstag, 8. Juli 2006 10:27 schrieb Al Bogner:
Es scheint nun zu klappen. Ich musser aber noch intensiver testen.
Nein, es passt doch nicht.
Doch. *eg*
cat /usr/local/bin/testscript2.sh #!/bin/bash echo $1 ^^
cat /usr/local/bin/try_test.sh #!/bin/bash [..] echo "mit sort und xargs" find "$dir" -mindepth 1 -maxdepth 1 -user `whoami` -type d | sort | xargs -r /usr/local/bin/testscript2.sh [..] mit sort und xargs /tmp/xargstest/ordner1
Es wird also nur der _1._ Ordner abgearbeitet.
Was erwartest du wenn du nur $1 verwurstest? a) nimm 'xargs -n 1' (dann brauchst du aber xargs nicht wirklich) b) nimm for arg; do echo "$arg" done -dnh -- KDE: Kontinental Drift Environment -- U. Schwarz -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Samstag, 8. Juli 2006 02:21 schrieb David Haller: h dem '| sort |' sehen...
Die Frage ist aber immer noch: was soll das script machen?
Die Frage war ganz allgemeiner Art, aber jetzt habe ich ein konkretes Problem, bei dem man das hier diskutierte anwenden kann. Siehe Thread "Komplexer Find-Befehl" Al -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
participants (4)
-
Al Bogner
-
Bernd Obermayr
-
David Haller
-
Peter Wiersig