ฉันกำลังมองหาความแตกต่างระหว่างและcp -r
cp -a
"เรียกซ้ำ" หมายถึงอะไรในแง่ของการคัดลอกไฟล์จากโฟลเดอร์
ฉันกำลังมองหาความแตกต่างระหว่างและcp -r
cp -a
"เรียกซ้ำ" หมายถึงอะไรในแง่ของการคัดลอกไฟล์จากโฟลเดอร์
คำตอบ:
หมายถึงการเรียกซ้ำที่cp
คัดลอกเนื้อหาของไดเรกทอรีและหากไดเรกทอรีมีไดเรกทอรีย่อยก็จะถูกคัดลอก (เรียกซ้ำ) ด้วย โดยไม่ต้อง-R
ที่cp
ไดเรกทอรีคำสั่งข้าม -r
เหมือนกันกับ-R
บน Linux มันแตกต่างกันในบางกรณีของขอบในรูปแบบ unix อื่น ๆ
โดยค่าเริ่มต้นcp
สร้างไฟล์ใหม่ที่มีเนื้อหาเหมือนกับไฟล์เก่าและการอนุญาตเดียวกัน แต่ จำกัด โดยumask ; การคัดลอกนั้นมาจากวันที่ในการทำสำเนาและเป็นของผู้ใช้ที่ทำการทำสำเนา ด้วย-p
ตัวเลือกการคัดลอกจะมีเวลาแก้ไขเหมือนกันเวลาเข้าถึงเดียวกันและการอนุญาตเดียวกันกับต้นฉบับ นอกจากนี้ยังมีเจ้าของและกลุ่มเดียวกันกับต้นฉบับหากผู้ใช้ทำสำเนามีสิทธิ์ในการสร้างไฟล์ดังกล่าว
-a
ตัวเลือกหมายความ-R
และ-p
บวกไม่กี่ตัวเลือกการรักษาอื่น ๆ มันพยายามที่จะทำสำเนาที่ใกล้เคียงกับของดั้งเดิมที่สุดเท่าที่จะเป็นไปได้: แผนผังไดเรกทอรีเดียวกัน, ประเภทไฟล์เดียวกัน, เนื้อหาเดียวกัน, ข้อมูลเมตาเดียวกัน (เวลา, สิทธิ์, คุณลักษณะเพิ่มเติม ฯลฯ )
-r
เพราะ-a
(สำหรับa
rchive) นั้นปลอดภัยที่สุดและอาจเป็นสิ่งที่คุณคาดว่าจะเกิดขึ้นเสมอ
-r
เป็นเพราะคุณอยู่ในบางส่วนที่แตกต่างยูนิกซ์ลินุกซ์อื่น ๆ นอกเหนือจากที่ไม่ได้และโดยทั่วไปคุณต้องการใช้-a
หรือcp -rp
rsync -a
ตัวเลือก -r หรือ -R สำหรับ "recursive" หมายความว่ามันจะคัดลอกไฟล์ทั้งหมดรวมถึงไฟล์ที่อยู่ในโฟลเดอร์ย่อย
ตัวเลือก - ตามที่ระบุไว้เป็นเช่นเดียวกับ -dR ซึ่งหมายความว่ามันจะรักษาลิงค์เช่นเดียวกับการคัดลอกเนื้อหาของไดเรกทอรีย่อย ความหมายของการรักษาลิงก์คือมันจะไม่ติดตามลิงก์ในขณะที่คัดลอกซ้ำ