2013-08-01 10 views
6

So ändern Sie den Besitz einer Datei während der Kopie. Ich meine in cp Befehl, wie Eigentum hinzufügenEigentümer der Datei während der Kopie ändern

Ich kann nicht auf --preserve verlassen und kopieren Sie die Datei und ändern Sie dann den Besitz der Datei aufgrund einiger Einschränkungen. Danke

+1

Warum können Sie die neue Eigentümerschaft nicht einfach nach dem Kopieren anwenden? –

Antwort

2

Nicht leicht. Sie könnten vielleicht den Befehl cp als den Benutzer ausführen, der die neue Datei besitzen soll, oder ihn seitwärts in einen temporären Speicherort kopieren, chown dann kopieren Sie es dorthin, wo es hin will, aber cp selbst fehlt chown.

2

Keine direkte Antwort auf Ihre Frage, aber wenn Sie GNU cpio zur Verfügung haben, können Sie es (im Copy-Pass-Modus) verwenden, um Dateien zu kopieren, während das Eigentum geändert wird. z.B.

echo 'some_file_name' | cpio -p --owner someuser:somegroup destination_directory 
1

Wie hier angegeben: https://unix.stackexchange.com/questions/124855/move-files-and-change-ownership-at-the-sametime

Verwendung rsync (1):

rsync \ 
    --remove-source-files \ 
    --chown=wanteduser:wantedgroup \ 
    /home/oldfolder /home/newfolder 
+2

Coole Lösung, getreu kopiert/eingefügt aus der zitierten Quelle. Das OP wollte jedoch _copy_ und den Besitz festlegen, nicht _move_. Sie müssen die '--remove-source-files' entfernen. Ich musste auch "-og" hinzufügen, damit es funktioniert (siehe Abschnitt "--usermap" in der rsync man-Seite). –

1

Ich Verwendung dieses Problem zu umgehen mit dem Befehl "scp" machen:

scp -p file.txt <user>@localhost:<destination> 

Beispiel:

scp -p /home/reportuser/dailyReport.doc [email protected]:/root/dailyReports/20150105/ 

-p dient zum Aufbewahren der Quelldatei timestamp

Verwandte Themen