답변:
사용 rsync(1)
:
rsync \
--remove-source-files \
--chown=unicorn:unicorn \
/home/poney/folderfulloffiles /home/unicorn/
usermap
또한 groupmap
옵션을 보고 싶을 수도 있습니다.
mv
않습니까? 사본 만? 아니면 그렇 mv
습니까?
아래 주석의 @Kevin에 따라 --file - |pipe
구문이 중복됩니다. 그래서 나는 그것을 제거했습니다.
이것은 또한 할 수 있습니다 tar
:
sudo tar -C${SRC_DIR} --remove-files --group=unicorn --owner=unicorn -c ./* |
sudo tar -C${TGT_DIR} -pvx
-f -
양쪽에 암시되어 있는지 확인하십시오 .
f -
부분 없이 잘 작동합니다 .
s=/home/poney/; f=folderfulloffiles; d=/home/unicorn/
sudo mv $s$f $d && sudo chown -R unicorn:unicorn $d$f
Gilles가 언급 한 것처럼 동일한 파일 시스템과 장치에 있지 않는 한 다른 답변과 길이가 비슷하며 모두 동일한 라이브러리 호출을 사용하기 때문에 모두 정확히 동일한 작업을 수행합니다. 이 경우 mv
실제로는 이름이 바뀌므로 rsync
또는 보다 효율적 tar
입니다.
:
대신의 .
를 처리 할 때 chown
?
chown
일반적으로 모두 소요 :
하고 .
.
nu=unicorn h=/home f=folderfulloffiles ; sudo mv $h/poney/$f $h/$nu/$f ; sudo chown -R ${nu}:$nu $_
- 그것은 당신의 대답의 요점이 아닙니다.