บน Linux (Debian, Ubuntu Mint ... ),
มีคำสั่งตัวเลือกหรือสิ่งที่ฉันสามารถใช้เพื่อถ่ายโอนไฟล์ไปยังผู้ใช้รายอื่นโดยไม่ต้องทำ:
sudo mv /home/poney/folderfulloffiles /home/unicorn/
sudo chown -R unicorn:unicorn /home/unicorn/folderfulloffiles
บน Linux (Debian, Ubuntu Mint ... ),
มีคำสั่งตัวเลือกหรือสิ่งที่ฉันสามารถใช้เพื่อถ่ายโอนไฟล์ไปยังผู้ใช้รายอื่นโดยไม่ต้องทำ:
sudo mv /home/poney/folderfulloffiles /home/unicorn/
sudo chown -R unicorn:unicorn /home/unicorn/folderfulloffiles
คำตอบ:
ใช้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 $_
- แม้ว่ามันจะเป็นจุดที่คำตอบของคุณแทบจะไม่ดี แต่ฉันก็ยอมแพ้แล้ว