2013-08-01 20 views
6

Jak zmienić własność pliku podczas samej kopii. Rozumiem w poleceniu cp, jak dodać własność:Zmiana właściciela pliku podczas kopiowania

Nie mogę polegać na --preserve i skopiować pliku, a następnie zmienić prawo własności pliku ze względu na pewne ograniczenia. Dzięki

+1

dlaczego nie można po prostu zastosować nowego prawa własności po skopiowaniu? –

Odpowiedz

2

Niełatwo. Być może możesz uruchomić polecenie cp jako użytkownik, któremu chcesz przypisać nowy plik, lub skopiować go na bok do tymczasowej lokalizacji, następnie skopiować go tam, gdzie chce, ale sam cp nie ma numeru.

2

Nie jest to bezpośrednia odpowiedź na Twoje pytanie, ale jeśli masz dostępne GNU cpio, możesz go użyć (w trybie kopiowania) do kopiowania plików przy zmianie właściciela. na przykład.

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

Jak stwierdzono tutaj: https://unix.stackexchange.com/questions/124855/move-files-and-change-ownership-at-the-sametime

użycie rsync (1):

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

Fajne rozwiązanie, wiernie skopiowane/wklejone z cytowanego źródła. Jednak OP chciał _copy_ i ustawić własność, a nie _move_. Musisz usunąć '--remove-source-files'. Musiałem też dodać '-og', aby działało (zobacz sekcję' --usermap' na stronie man rsync). –

1

ja wykorzystać obejście z polecenia "scp":

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

przykład:

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

-p służy do zachowywania znacznika pliku źródłowego

Powiązane problemy