파일 이동과 동시에 소유권 변경

파일 이동과 동시에 소유권 변경

Linux(Debian, Ubuntu Mint...)에서
다음 작업을 수행하지 않고도 다른 사용자에게 파일을 전송할 수 있는 옵션 명령이나 기타 명령이 있습니까?

sudo mv /home/poney/folderfulloffiles /home/unicorn/
sudo chown -R unicorn:unicorn /home/unicorn/folderfulloffiles

답변1

사용rsync(1):

rsync \
  --remove-source-files \
  --chown=unicorn:unicorn \
    /home/poney/folderfulloffiles /home/unicorn/

답변2

아래 의견의 @Kevin에 따르면 --file - |pipe구문이 중복됩니다. 그래서 삭제했습니다.

이 작업은 다음을 통해 수행할 수도 있습니다 tar.

sudo tar -C${SRC_DIR} --remove-files --group=unicorn --owner=unicorn -c ./* | 
    sudo tar -C${TGT_DIR} -pvx

답변3

s=/home/poney/; f=folderfulloffiles; d=/home/unicorn/ 
sudo mv $s$f $d && sudo chown -R unicorn:unicorn $d$f

다른 답변과 거의 같은 길이입니다. 모두 내부적으로 동일한 라이브러리 호출을 사용하기 때문에 Giles가 지적한 것처럼 이것이 동일한 파일 시스템 및 장치에 있지 않는 한 모두 동일한 작업을 수행하고 있습니다. 이 경우에는 mv실제로 이름을 바꾸는 rsync것이므로 tar.

관련 정보