ย้ายไฟล์และเปลี่ยนความเป็นเจ้าของเมื่อ sametime


23

บน Linux (Debian, Ubuntu Mint ... ),
มีคำสั่งตัวเลือกหรือสิ่งที่ฉันสามารถใช้เพื่อถ่ายโอนไฟล์ไปยังผู้ใช้รายอื่นโดยไม่ต้องทำ:

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

คำตอบ:


30

ใช้rsync(1):

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

4
ขอบคุณ @dawud - นี่คือ "สิ่งที่ฉันไม่ทราบและไม่เข้าใจว่าฉันคิดถึงมันทุกวัน"
Jenny D

1
@ JennD คุณอาจต้องการดูusermapและgroupmapตัวเลือกต่างๆเช่นกัน
dawud

2
แต่mvมันไม่ได้ใช่มั้ย คัดลอกเท่านั้น? หรือมันmvได้หรือไม่
mikeserv

@mikeserv สังเกตถูกต้องโปรดดูการแก้ไขของฉัน
dawud

11

ตาม @Kevin ในความคิดเห็นด้านล่าง--file - |pipeไวยากรณ์ซ้ำซ้อน ดังนั้นฉันจึงลบมัน

สิ่งนี้สามารถทำได้ด้วยtar:

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

-f -ค่อนข้างแน่ใจว่ามีนัยยะที่ปลายทั้งสอง
เควิน

1
@ เควินไม่ได้อยู่ที่นี่ ที่นี่มันระบุไว้
mikeserv

ใช่คุณระบุ แต่ไม่จำเป็น คำสั่งของคุณทำงานได้ดีโดยไม่มีf -ส่วน
เควิน

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

เกี่ยวกับความยาวเท่ากันกับคำตอบอื่น ๆ และโน้ตเนื่องจากพวกเขาทั้งหมดใช้การเรียกไลบรารี่เดียวกันภายใต้ประทุนพวกเขาทั้งหมดทำสิ่งเดียวกัน - เว้นแต่ว่าเป็น Gilles โน้ตสิ่งนี้อยู่ในระบบไฟล์และอุปกรณ์เดียวกัน ซึ่งในกรณีนี้mvเป็นจริงเปลี่ยนชื่อซึ่งทำให้มันมีประสิทธิภาพมากขึ้นกว่าหรือrsynctar


มันไม่ได้เป็น:แทนที่จะ.จัดการกับเมื่อchown?
Kiwy

2
อืม - น่าสนใจ มันเป็นอย่างนั้นในหน้าคน แต่ฉันเคยใช้จุด ดูเหมือนว่าพวกเขาจะเอาออกจากหน้า GNU เมื่อประมาณสิบปีที่แล้วเพราะมันไม่ใช่ POSIX แบบพกพา ยังคงใช้งานได้ (ด้วย chown จาก GNU coreutils บน linux) แต่ฉันจะเปลี่ยนสิ่งข้างต้น
goldilocks

1
chownมักจะใช้เวลาทั้งสองและ: .
slm

1
คุณทำได้สั้นกว่านี้นิดหน่อย: nu=unicorn h=/home f=folderfulloffiles ; sudo mv $h/poney/$f $h/$nu/$f ; sudo chown -R ${nu}:$nu $_- แม้ว่ามันจะเป็นจุดที่คำตอบของคุณแทบจะไม่ดี แต่ฉันก็ยอมแพ้แล้ว
mikeserv

3
วิธีการแก้ปัญหานี้มีข้อได้เปรียบว่าถ้าแหล่งที่มาและปลายทางอยู่ในระบบไฟล์เดียวกันไฟล์จะถูกย้ายมากกว่าคัดลอกและลบต้นฉบับ
Gilles 'หยุดชั่วร้าย'
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.