Kopieren und chmod / chown gleichzeitig


14

Ich habe eine Protokolldatei, deren Eigentümer rootich in ein Verzeichnis eines anderen Benutzers kopieren möchte, damit dieser sie analysieren kann (sie muss zuerst dekomprimiert werden).

Derzeit müsste ich

# cp log.xz /home/user/Documents
# chown user:user /home/user/Documents/log.xz

Gibt es eine Möglichkeit, beide Befehle gleichzeitig auszugeben, möglicherweise mit einer oder mehreren cpOptionen?


Sie möchten mehrere Befehle gleichzeitig ausführen?
Asvignesh

@ Vignesh Ich frage nur, wie es am kürzesten geht, vielleicht mit der richtigen Verwendung von Rohren;)
usr-local-ΕΨΗΕΛΩΝ

Antworten:


6

In der Manpage cp sind keine Optionen aufgeführt, mit denen Sie dies nur mit dem Befehl CP tun können. Wenn Sie nur einen Befehl ausgeben und "weggehen" möchten, können Sie die 2 Befehle in eine durch a getrennte Zeile setzen. um die Befehle automatisch nacheinander auszuführen.

cp log.xz / home / user / Documents; chown user: user /home/user/Documents/log.xz

Obwohl trivial, stellte ich meine Frage, ob es einen intelligenten Einzeiler gibt, z. B. bei ordnungsgemäßer Verwendung von Rohren. Es existiert wahrscheinlich nicht
usr-local-ΕΨΗΕΛΩΝ

Ich denke nicht, dass es eine gute Lösung ist, aber wenn Sie absolut darauf aus sind, Rohre zu verwenden, habe ich mir die folgende Erfindung ausgedacht, von der ich vermute, dass sie funktionieren wird - "cp -v /from.dir / to / dir 2> / dev / null | cut -f1 -d "'" | cut -c2- | xargs chown user: user "
davidgo


34

Vielleicht möchten Sie sich Folgendes ansehen install:

install -g user -o user log.xz /home/user/Documents

installhat andere Optionen für die Installation geeignet. zB Modus einstellen oder Verzeichnisstruktur beibehalten.


Netter Tipp. Ich neigte dazu zu denken, dass "installieren" dazu gedacht ist, Dinge zu installieren, aber die eigentliche Zusammenfassung in der Manpage lautet: "installieren - Dateien kopieren und Attribute festlegen"
Raúl Salinas-Monteagudo

@esperanto: Die Hauptverwendung von installbesteht immer noch darin, Dateien auf dem System zu installieren. Einige Programme überschreiben tatsächlich, installindem sie die Umgebungsvariable PATH so ändern, dass Dateien an anderer Stelle installiert werden. Einige Package Builder tun dies, sodass Dateien nicht auf dem aktuellen System installiert, sondern in einem Paket gespeichert werden.
BatchyX

1
Es ist -g group -o user. -osteht für Besitzer.
JosiahYoder-Deaktiv außer ..

2

Siehe Kartenseite des Befehls cp

--preserve [= ATTR_LIST] behält die angegebenen Attribute (Standard: Modus, Besitz, Zeitstempel) bei, wenn möglich zusätzliche Attribute: Kontext, Links, xattr, alle

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.