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
.