Bitte um kurzes Script :)

Bash, Shell, PHP, Python, Perl, CGI
static
Posts: 437
Joined: 2002-10-27 19:56
Location: Schweiz

Bitte um kurzes Script :)

Post by static »

Hi,
ich bin leider nicht so fit im Bashcoding, deshalb hoffe ich auf eine nette Seele die mir kurz einen gefallen macht und mir ein Codeschnippsel erstellt.
Ich möchte gerne alle Dateien in einem Verzeichnis, die die UID xxxx haben der UID yyyy zuweisen. Dürfte doch eigentlich ein 1-Zeiler sein, oder? :-D

Wäre wirklich sehr froh darum, thx im voraus

so long
static
olaf.dietsche
Posts: 401
Joined: 2002-12-19 02:06
Location: Siegburg

Re: Bitte um kurzes Script :)

Post by olaf.dietsche »

static wrote:ich bin leider nicht so fit im Bashcoding,
Da hilft nur: lesen und probieren.
deshalb hoffe ich auf eine nette Seele die mir kurz einen gefallen macht und mir ein Codeschnippsel erstellt.
Ich möchte gerne alle Dateien in einem Verzeichnis, die die UID xxxx haben der UID yyyy zuweisen. Dürfte doch eigentlich ein 1-Zeiler sein, oder? :-D
Ungetestet:

Code: Select all

find /verzeichnis -uid xxx | xargs chown yyy
Ansonsten mußt du dir

Code: Select all

man find
für die richtigen Optionen ansehen. ;-)
static
Posts: 437
Joined: 2002-10-27 19:56
Location: Schweiz

Re: Bitte um kurzes Script :)

Post by static »

olaf.dietsche wrote:Da hilft nur: lesen und probieren.
Habs mir vorgenommen :lol:

Code: Select all

find /verzeichnis -uid xxx | xargs chown yyy
funzt wunderbar - xargs war hierbei der Teil auf den ich nicht gekommen bin :wink:

thx @ olaf

so long
static
majortermi
Userprojekt
Userprojekt
Posts: 916
Joined: 2002-06-17 16:09

Re: Bitte um kurzes Script :)

Post by majortermi »

static wrote:

Code: Select all

find /verzeichnis -uid xxx | xargs chown yyy
funzt wunderbar - xargs war hierbei der Teil auf den ich nicht gekommen bin :wink:
Geht auch ohne xargs, ich hätte das so gelöst:

Code: Select all

chown yyy `find /verzeichnis -uid xxx`
Erst nachlesen, dann nachdenken, dann nachfragen... :)
Warum man sich an diese Reihenfolge halten sollte...
olaf.dietsche
Posts: 401
Joined: 2002-12-19 02:06
Location: Siegburg

Re: Bitte um kurzes Script :)

Post by olaf.dietsche »

MajorTermi wrote:

Code: Select all

find /verzeichnis -uid xxx | xargs chown yyy
Geht auch ohne xargs, ich hätte das so gelöst:

Code: Select all

chown yyy `find /verzeichnis -uid xxx`
Wenn es sehr viele Dateien sind, dann stößt man mit den Backticks an die Systemgrenzen. Bei xargs werden die Dateien in handliche Portionen aufgeteilt, also quasi der Mittelweg zwischen deiner Version (genau ein chown Aufruf) und find ... -exec chown (sehr viele chown Aufrufe).
dea
Posts: 532
Joined: 2002-08-13 12:05

Re: Bitte um kurzes Script :)

Post by dea »

Code: Select all

find /verzeichnis -type f -uid XXX -exec chown YYY {} ;
Wenn nicht alle Dateien innerhalb des Verzeichnisses dem User XXX gehören und/oder wenn sich darunter wiederum nicht zu ändernde Verzeichnisse befinden.

Ansonsten:

Code: Select all

chown -R YYY /verzeichnis/*
Setzt den User YYY für _alle_ Dateien und Unterverzeichnisse unterhalb von /verzeichnis/. Lässt Du -R weg, werden lediglich alle Verzeichnisse (ohne ihren "Inhalt") und Dateien diesem User zugeordnet ...

man find, man chown
Outlaw
Posts: 1500
Joined: 2002-12-04 10:22
Location: 4. Server von rechts, 2. Reihe von oben

Re: Bitte um kurzes Script :)

Post by Outlaw »

Das hat mir yast übrigens zum Ã?ndern aller Dateien auf der gesamten Platte einer UID vorgeschlagen, als ich eine User ID geändert habe:

Code: Select all

find / -uid ALT -exec chown NEU {} ;
ALT = alte UID
NEU = neue UID

Gruß Outi
:D Gruß Outi :D