Wie verwende ich wilcards beim chown-Befehl?

722
e-info128

Ich muss beim chown-Befehl Platzhalter verwenden. Beispiel:

# chown app:demo /opt/app/users/*/demo 

Funktioniert aber nicht. Was kann ich machen?

0
Was ist der Fehler, den Sie bekommen? jcbermu vor 8 Jahren 0
chown: kann nicht auf "/ opt / app / * / demo" zugreifen: Keine solche Datei oder ein solches Verzeichnis, aber es existiert. e-info128 vor 8 Jahren 0
Nein "/ Benutzer" in der Fehlermeldung? choroba vor 8 Jahren 2
[root @ machine] # chown storage: storage_clientes_bitac -R "/ home / storage / storage / Empresa / * / Bitacoras" chown: Keine Berechtigung a «/ home / storage / storage / Empresa / * / Bitacoras»: Keine Angabe el fichero o el directorio e-info128 vor 8 Jahren 0
Hast du eine Erlaubnis? Vielleicht müssen Sie "sudo" verwenden jcbermu vor 8 Jahren 0
Verwenden Sie Centos 6 und Root-Benutzer. e-info128 vor 8 Jahren 0
Entfernen Sie die doppelten Anführungszeichen im Verzeichnispfad `chown storage: storage_clientes_bitac -R / home / storage / storage / Empresa / * / Bitacoras` jcbermu vor 8 Jahren 2

2 Antworten auf die Frage

0
infixed

Platzhalter sind oft problematisch, wenn sie nicht im Basisnamen stehen

Sie könnten das tun

find /opt/app/users/ -name demo -exec chown app:demo \{\} \; 
brauche / opt / app / users / * / demo / aber kein / opt / app / users / * / demo2 / demo e-info128 vor 8 Jahren 0
Oh, nur eine Schicht tief? Versuchen Sie `find / opt / app / users / -maxdepth 1-type d -name demo -exec echo \ {\} found \;`, um zu sehen, ob das funktioniert. Wenn es die richtigen Verzeichnisse findet, ändern Sie das Echo in einen chown-Befehl infixed vor 8 Jahren 0
Ich kann es nicht ausprobieren. Vielleicht brauchen Sie '-maxdepth 2'. infixed vor 8 Jahren 0
0
Dmitry Grigoryev

Sie haben Ihr Muster eingeschlossen "double quotes", das die Dateinamenerweiterung (auch als Globbing bezeichnet ) verhindert:

Anführungszeichen: "..." verhindert einige Substitutionen, erlaubt aber andere. Jede Ersetzung, die mit einem Dollarzeichen $ beginnt, wird ausgeführt, ebenso wie die ...Ersetzung (Backtick) des Befehls. Es wird auch ein Backslash-Escape ausgeführt. Es wird keine Wortaufteilung oder Dateinamenerweiterung durchgeführt .

Die Lösung besteht offensichtlich darin, Ihren Befehl ohne Anführungszeichen auszuführen, wie Jcbermu darauf hinweist:

chown storage:storage_clientes_bitac -R /home/storage/storage/Empresa/*/Bitacoras 


Eine wichtige Sache, die Sie bedenken sollten, ist, Befehle und Fehlermeldungen wörtlich zu veröffentlichen, wenn Sie Fragen stellen. Nicht jeder hier mag Ratespiele.