ฉันจะใช้ cp --attribute-only เมื่อใด


10

ทำการศึกษาเกี่ยวกับคำสั่ง Unix พื้นฐานและพยายามรับตัวอย่างเมื่อฉันต้องการใช้ตัวเลือกบรรทัดคำสั่งต่อไปนี้--attributes-onlyสำหรับคำสั่งcp

นี่คือจากcpหน้าคน

--attributes-only
              don't copy the file data, just the attributes

คำตอบ:


12

สมมติว่าคุณมีไฟล์file1ที่คุณรู้ว่าควรมีแอ็ตทริบิวต์เหมือนกันfile2(คุณรู้ว่าfile2มีคุณสมบัติที่ถูกต้อง)

$ stat file{1,2}
  File: 'file1'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 1fh/31d Inode: 2326956     Links: 1
Access: (0600/-rw-------)  Uid: ( 1000/   chris)   Gid: ( 1000/   chris)
Access: 2013-12-24 09:53:20.248720441 +0800
Modify: 2013-12-24 09:53:20.248720441 +0800
Change: 2013-12-24 09:53:31.011984772 +0800
 Birth: -
  File: 'file2'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 1fh/31d Inode: 2326957     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   chris)   Gid: ( 1000/   chris)
Access: 2013-12-24 09:53:21.045382001 +0800
Modify: 2013-12-24 09:53:21.045382001 +0800
Change: 2013-12-24 09:53:21.045382001 +0800
 Birth: -

วิธีหนึ่งในการตรวจสอบให้แน่ใจว่าตรงกันคือไปและตรวจสอบfile2และใช้แอตทริบิวต์ด้วยตนเอง:

$ chmod 644 file1

อย่างไรก็ตามนี่เป็นเรื่องยุ่งยากที่จะทำให้เป็นอัตโนมัติและสคริปต์ มันจะง่ายกว่าที่จะได้รับคุณลักษณะfile2และนำไปใช้กับfile1โปรแกรม

$ cp --attributes-only --preserve file2 file1
$ stat file1
  File: 'file1'
  Size: 0           Blocks: 0          IO Block: 4096   regular empty file
Device: 1fh/31d Inode: 2326956     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   chris)   Gid: ( 1000/   chris)
Access: 2013-12-24 09:53:21.045382001 +0800
Modify: 2013-12-24 09:53:21.045382001 +0800
Change: 2013-12-24 09:57:06.320604649 +0800
 Birth: -

--attributes-onlyไม่ได้ทำอะไรด้วยตัวเอง จำเป็นต้องรวมกับการตั้งค่าสถานะการสงวนคุณลักษณะอื่น จากinfo cp:

--attributes-only
     Copy only the specified attributes of the source file to the
     destination.  If the destination already exists, do not alter its
     contents.  See the `--preserve' option for controlling which
     attributes to copy.

--preserve--preserve=mode,ownership,timestampsถูกนำมาใช้ข้างต้นซึ่งเป็นเอกสารที่เป็นเทียบเท่ากับ ภายในคุณสามารถคิดว่านี่เป็น "อย่าคัดลอกข้อมูล" แทนที่จะเป็น "คัดลอกคุณลักษณะเท่านั้น" ซึ่งเป็นสาเหตุที่คุณต้องผ่าน--preserveโดยไม่คำนึงถึง


0

หากคุณมีสมาร์ทโฟนคุณสามารถเลือกเพลงจากพีซีเมื่อคุณอยู่ห่างไกล:

$ cp -rn --attributes-only ~/Music smartphone/Music

เมื่อคุณอยู่ห่างจากพีซีให้ลบไดเรกทอรีคุณต้องการคัดลอกในอนาคต

$ cp -rn ~/Music smartphone/Music

คุณได้รับเลือกเพลงและไฟล์ที่ว่างเปล่า

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