ubuntuusers.de

chown * wie dieses Verzeichnis

Status: Gelöst | Ubuntu-Version: Server 20.04 (Focal Fossa)
Antworten |

Ciatronical

Anmeldungsdatum:
26. Juli 2009

Beiträge: 170

Hey All,

mit ll sehe ich u.a.

drwxr-x--x  2 web37 client1    73728 Apr 23 09:24 ./

Nun gebe ich chown -R web37:client1 * ein.

Wie kann ich die beiden Befehle kombinieren?

Auf deutsch: "Ermittele die Besitzer und Groppe diese Verzeichnis und ändere dann Benutzer und Gruppe sämtlicher Dateien und Verzeichnisse."

Dank und Gruß

Ronny

Bearbeitet von sebix:

Bitte verwende in Zukunft Codeblöcke, um die Übersicht im Forum zu verbessern!

DJKUhpisse Team-Icon

Supporter, Wikiteam
Avatar von DJKUhpisse

Anmeldungsdatum:
18. Oktober 2016

Beiträge: 18225

Wohnort: in deinem Browser, hier auf dem Bildschirm

ll datei |cut -f 3 -d" "

könnte man in eine Subshell packen und das dann an Stelle des Besitzers schreiben.

$(ll fuchs |cut -f 3 -d" ")

wäre der Part für die Subshell. Für Gruppe die Nummer bei cut anpassen.

Ciatronical

(Themenstarter)

Anmeldungsdatum:
26. Juli 2009

Beiträge: 170

Nein.

Ich möchte Besitzer und Gruppe des Verzeichnisses ermitteln in dem ich mich befinde (.)

Ich brauche quasi "web37:client1"

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14382

Ciatronical schrieb:

Nein.

BTW: Wenn Du mit "chown -R" hantierst, kann es gefährlich werden, wenn Du dein Vorhaben nicht richtig beschreibst. ... und die die dir helfen wollen, meinen verstanden zu haben, was Du willst.

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Hallo!

Ich würde stat zum ermitteln nutzen:

stat -c '%U:%G' ./

Mit subshell müsste das dann in etwa so funktionieren: chown -R $(stat -c '%U:%G' QUELLE) ZIEL

Ciatronical

(Themenstarter)

Anmeldungsdatum:
26. Juli 2009

Beiträge: 170

Hey vielen Dank

Es funktioniert dann so: chown -R $(stat -c '%U:%G' ./) *

Da werde ich mir gleich mal einen Alias erstellen...

ChickenLipsRfun2eat Team-Icon

Anmeldungsdatum:
6. Dezember 2009

Beiträge: 12067

Ciatronical schrieb:

Da werde ich mir gleich mal einen Alias erstellen...

Aufpassen mit den Pfadangaben 😉 Ich würde das vermutlich mit entsprechendem Kommentar als bash-script erstellen und "$1" und "$2" prüfen. Wenn du den Alias sonst im falschen Kontext ausführst, zerschiesst du dir die Rechte.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17622

Wohnort: Berlin

Ciatronical schrieb:

Es funktioniert dann so: chown -R $(stat -c '%U:%G' ./) *

Da werde ich mir gleich mal einen Alias erstellen...

Der * erfasst aber keine versteckten Dateien; dazu müsstest Du .* ergänzen, also

1
chown -R $(stat -c '%U:%G' ./) * .*

wenn Du nicht ausschließen kannst/willst, dass versteckte Dateien auch geändert werden.

Ciatronical

(Themenstarter)

Anmeldungsdatum:
26. Juli 2009

Beiträge: 170

Letztendlich habe ich es so:

1
alias chownd='chown -R $(stat -c '%U:%G' ./) .'

realisiert.

Vielen Dank für eure Hilfe

Gruß Ronny

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17622

Wohnort: Berlin

Richtig, im Sinne von: auf solche Anforderungen ist das Programm vorbereitet, wäre allerdings:

1
chown --reference=. *

Ein Blick in die Manpage kann selten schaden (außer man kann kein Englisch):

1
2
3
4
5
6
NAME
       chown - change file owner and group

SYNOPSIS
       chown [OPTION]... [OWNER][:[GROUP]] FILE...
       chown [OPTION]... --reference=RFILE FILE...
Antworten |