นี่คือคำสั่ง cpposix ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
cp — คัดลอกไฟล์
เรื่องย่อ
cp [−พีฟิป] source_file target_file
cp [−พีฟิป] source_file... เป้า
ซีพี −R [−H|−L|−ป] [-fip] source_file... เป้า
DESCRIPTION
รูปแบบสรุปแรกแสดงโดยตัวถูกดำเนินการสองตัว ซึ่งไม่มีไฟล์ใดที่มีอยู่ของ
ประเภทไดเร็กทอรี NS cp ยูทิลิตี้จะคัดลอกเนื้อหาของ source_file (หรือถ้า source_file
เป็นไฟล์ประเภท symbolic link เนื้อหาของไฟล์ที่อ้างอิงโดย source_file) มัน
เส้นทางปลายทางชื่อโดย เป้าหมาย_ไฟล์.
รูปแบบสรุปที่สองแสดงโดยตัวถูกดำเนินการตั้งแต่สองตัวขึ้นไปโดยที่ -ร ตัวเลือกไม่ได้
ระบุไว้และไม่สามารถใช้แบบฟอร์มสรุปฉบับแรกได้ มันจะเป็นข้อผิดพลาดถ้ามี
source_file เป็นไฟล์ประเภทไดเร็กทอรี if เป้า ไม่มีอยู่จริงหรือถ้า เป้า ไม่
ตั้งชื่อไดเร็กทอรี NS cp ยูทิลิตี้จะคัดลอกเนื้อหาของแต่ละ source_file (หรือถ้า
source_file เป็นไฟล์ประเภท symbolic link เนื้อหาของไฟล์ที่อ้างอิงโดย
source_file) ไปยังเส้นทางปลายทางที่ตั้งชื่อโดยการต่อกันของ เป้า, โสด
ตัวอักษร if เป้า ไม่ได้ลงท้ายด้วย และองค์ประกอบสุดท้ายของ
source_file.
รูปแบบสรุปที่สามแสดงโดยตัวถูกดำเนินการตั้งแต่สองตัวขึ้นไปโดยที่ -ร ตัวเลือกที่
ระบุไว้ NS cp ยูทิลิตีจะต้องคัดลอกแต่ละไฟล์ในลำดับชั้นของไฟล์ที่รูทในแต่ละไฟล์
source_file ไปยังเส้นทางปลายทางที่มีชื่อดังต่อไปนี้:
* ถ้า เป้า มีอยู่และตั้งชื่อไดเร็กทอรีที่มีอยู่ ชื่อของไดเร็กทอรีที่สอดคล้องกัน
เส้นทางปลายทางสำหรับแต่ละไฟล์ในลำดับชั้นไฟล์จะต้องต่อกันของ
เป้า, โสด ตัวอักษร if เป้า ไม่ได้ลงท้ายด้วย , และ
ชื่อพาธของไฟล์ที่สัมพันธ์กับไดเร็กทอรีที่มี source_file.
* ถ้า เป้า ไม่มีอยู่และมีการระบุตัวถูกดำเนินการสองตัวชื่อที่สอดคล้องกัน
ปลายทางสำหรับ source_file จะเป็น เป้า; ชื่อของที่สอดคล้องกัน
เส้นทางปลายทางสำหรับไฟล์อื่น ๆ ทั้งหมดในลำดับชั้นไฟล์จะต้องต่อกัน
of เป้า, NS อักขระและชื่อพาธของไฟล์ที่สัมพันธ์กับ source_file.
มันจะเป็นข้อผิดพลาดถ้า เป้า ไม่มีอยู่และมีการระบุตัวถูกดำเนินการมากกว่าสองตัวหรือ
if เป้า มีอยู่และไม่ได้ตั้งชื่อไดเร็กทอรี
ในคำอธิบายต่อไปนี้ คำว่า ปลายทาง_file หมายถึงไฟล์ที่ชื่อ
เส้นทางปลายทาง คำว่า source_file หมายถึงไฟล์ที่กำลังคัดลอก ไม่ว่า
ระบุเป็นตัวถูกดำเนินการหรือไฟล์ในลำดับชั้นของไฟล์ที่รูทในa source_file ตัวถูกดำเนินการ ถ้า
source_file เป็นไฟล์ประเภท symbolic link:
* ถ้า -ร ไม่ได้ระบุตัวเลือก cp จะดำเนินการตามประเภทและ
เนื้อหาของไฟล์ที่อ้างอิงโดยลิงก์สัญลักษณ์ ไม่ใช่โดยลิงก์สัญลักษณ์
เอง เว้นแต่ -พี ระบุตัวเลือกแล้ว
* ถ้า -ร ระบุตัวเลือก:
-- หากไม่มีตัวเลือกใดๆ -H, -L, หรือ -พี ถูกระบุ ไม่ได้ระบุว่าใดของ
-H, -L,หรือ -พี จะถูกใช้เป็นค่าเริ่มต้น
-- ถ้า -H ระบุตัวเลือก cp จะดำเนินการตามประเภทและ
เนื้อหาของไฟล์ที่อ้างอิงโดยลิงค์สัญลักษณ์ใด ๆ ที่ระบุเป็น source_file
ตัวถูกดำเนินการ
-- ถ้า -L ระบุตัวเลือก cp จะดำเนินการตามประเภทและ
เนื้อหาของไฟล์ที่อ้างอิงโดยลิงค์สัญลักษณ์ใด ๆ ที่ระบุเป็น source_file
ตัวถูกดำเนินการหรือลิงก์สัญลักษณ์ใดๆ ที่พบระหว่างการสำรวจลำดับชั้นของไฟล์
-- ถ้า -พี ระบุตัวเลือก cp จะคัดลอกลิงค์สัญลักษณ์ใด ๆ ที่ระบุเป็น
source_file ตัวถูกดำเนินการและลิงก์สัญลักษณ์ใดๆ ที่พบในระหว่างการเดินทางของไฟล์
ลำดับชั้นและจะต้องไม่เป็นไปตามลิงค์สัญลักษณ์ใด ๆ
สำหรับแต่ละ source_fileให้ดำเนินการตามขั้นตอนต่อไปนี้:
1 ถ้า source_file อ้างอิงไฟล์เดียวกันกับ ปลายทาง_file, cp อาจเขียนการวินิจฉัย
ข้อความถึงข้อผิดพลาดมาตรฐาน มันจะไม่ทำอะไรกับ source_file และจะไปต่อ
ไปยังไฟล์ที่เหลือ
2 ถ้า source_file เป็นประเภทไดเร็กทอรี ให้ดำเนินการตามขั้นตอนต่อไปนี้:
NS. ถ้า -ร ไม่ได้ระบุตัวเลือก cp จะเขียนข้อความวินิจฉัยถึง
ข้อผิดพลาดมาตรฐาน ไม่ต้องทำอะไรกับ source_file, และไปต่อที่ใดที่เหลืออยู่
ไฟล์
NS. ถ้า source_file ไม่ได้ระบุเป็นตัวถูกดำเนินการและ source_file คือ dot หรือ dot-dot,
cp จะไม่ทำอะไรกับ source_file และไปยังไฟล์ที่เหลือ
ค. ถ้า ปลายทาง_file มีอยู่และเป็นประเภทไฟล์ที่ไม่ได้ระบุโดย System Interfaces
ปริมาณของ POSIX.1-2008 พฤติกรรมถูกกำหนดโดยการดำเนินการ
NS. ถ้า ปลายทาง_file มีอยู่และไม่ใช่ไดเรกทอรีประเภท cp จะเขียนการวินิจฉัย
ข้อความถึงข้อผิดพลาดมาตรฐาน ไม่ต้องทำอะไรกับ source_file หรือไฟล์ใดๆ ด้านล่าง
source_file ในลำดับชั้นของไฟล์ และไปยังไฟล์ที่เหลือ
อี ถ้าไดเร็กทอรี ปลายทาง_file ไม่มีอยู่ก็จะต้องสร้างด้วย file
บิตการอนุญาตตั้งเป็นค่าเดียวกับของ source_file, แก้ไขโดย
รูปแบบการสร้างไฟล์ของผู้ใช้ถ้า -หน้า ไม่ได้ระบุตัวเลือกแล้ว
แบบรวมระดับบิตหรือด้วย S_IRWXU ถ้า ปลายทาง_file สร้างไม่ได้ cp จะต้อง
เขียนข้อความวินิจฉัยข้อผิดพลาดมาตรฐาน ไม่ต้องทำอะไรกับ source_file,
และไปยังไฟล์ที่เหลือ ไม่ระบุหาก cp พยายามคัดลอกไฟล์
ในลำดับชั้นของไฟล์ที่รูทใน source_file.
NS. ไฟล์ในไดเร็กทอรี source_file จะถูกคัดลอกไปยังไดเร็กทอรี ปลายทาง_file,
ทำสี่ขั้นตอน (1 ถึง 4) ที่ระบุไว้ที่นี่พร้อมไฟล์เป็น source_files.
NS. ถ้า ปลายทาง_file ถูกสร้างขึ้น บิตการอนุญาตไฟล์จะถูกเปลี่ยน (ถ้าจำเป็น)
ให้เหมือนกับของ source_file, แก้ไขโดยมาสก์การสร้างไฟล์ของ
ผู้ใช้ถ้า -หน้า ไม่ได้ระบุตัวเลือก
ชม. NS cp ยูทิลิตี้จะไม่ทำอะไรเพิ่มเติมกับ source_file และไปต่อที่ใดที่เหลืออยู่
ไฟล์
3 ถ้า source_file เป็นไฟล์ประเภท Regular ให้ดำเนินการดังนี้
NS. พฤติกรรมไม่ระบุถ้า ปลายทาง_file มีอยู่และถูกเขียนโดยก่อนหน้า
ขั้นตอน มิฉะนั้น ถ้า ปลายทาง_file ที่มีอยู่แล้ว ให้ดำเนินการตามขั้นตอนต่อไปนี้:
ผม. ถ้า -ฉัน ตัวเลือกมีผลบังคับใช้ the cp ยูทิลิตี้จะเขียนแจ้งให้
ข้อผิดพลาดมาตรฐานและอ่านบรรทัดจากอินพุตมาตรฐาน ถ้าคำตอบคือ
ไม่ยืนยัน, cp จะไม่ทำอะไรกับ source_file และไปที่ใด ๆ
ไฟล์ที่เหลือ
ii ไฟล์อธิบายสำหรับ ปลายทาง_file ย่อมได้มาจากการกระทำ
เทียบเท่ากับ เปิด() ฟังก์ชันที่กำหนดไว้ในโวลุ่มอินเทอร์เฟซระบบของ
POSIX.1-2008 ถูกเรียกโดยใช้ ปลายทาง_file เป็น เส้นทาง อาร์กิวเมนต์และระดับบิต-
รวม OR ของ O_WRONLY และ O_TRUNC เป็น ของล้าหลัง ข้อโต้แย้ง.
สาม. หากความพยายามในการรับ file descriptor ล้มเหลวและ -ฉ ตัวเลือกอยู่ใน
ผลกระทบ cp จะพยายามลบไฟล์โดยดำเนินการเทียบเท่า
ไป ยกเลิกการเชื่อมโยง() ฟังก์ชันที่กำหนดไว้ในโวลุ่มอินเทอร์เฟซระบบของ
POSIX.1-2008 ถูกเรียกโดยใช้ ปลายทาง_file เป็น เส้นทาง การโต้แย้ง. หากความพยายามนี้
ประสบความสำเร็จ cp ให้ดำเนินการต่อด้วยขั้นตอนที่ 3b
NS. ถ้า ปลายทาง_file ไม่มีอยู่ จะต้องได้รับ file descriptor โดยการดำเนินการ
การกระทำที่เทียบเท่ากับ เปิด() ฟังก์ชันที่กำหนดไว้ในโวลุ่มอินเทอร์เฟซระบบ
ของ POSIX.1-2008 ถูกเรียกโดยใช้ ปลายทาง_file เป็น เส้นทาง อาร์กิวเมนต์และระดับบิต-
รวม OR ของ O_WRONLY และ O_CREAT เป็น ของล้าหลัง การโต้แย้ง. การอนุญาตไฟล์
บิตของ source_file จะเป็น โหมด ข้อโต้แย้ง.
ค. หากความพยายามในการรับ file descriptor ล้มเหลว cp จะเขียนการวินิจฉัย
ข้อความถึงข้อผิดพลาดมาตรฐาน ไม่ต้องทำอะไรกับ source_fileและไปที่ใด ๆ
ไฟล์ที่เหลือ
NS. เนื้อหาของ source_file จะต้องเขียนลงใน file descriptor เขียนใด ๆ
ผิดพลาดจะทำให้เกิด cp เพื่อเขียนข้อความวินิจฉัยข้อผิดพลาดมาตรฐานและดำเนินการต่อ
ไปที่ขั้นตอนที่ 3e
อี ตัวอธิบายไฟล์จะถูกปิด
NS. NS cp ยูทิลิตี้จะไม่ทำอะไรเพิ่มเติมกับ source_file. หากเกิดข้อผิดพลาดในการเขียนขึ้น
ในขั้นตอนที่ 3d จะไม่ระบุ if cp ดำเนินการต่อด้วยไฟล์ที่เหลือ ถ้าไม่
เกิดข้อผิดพลาดในการเขียนในขั้นตอนที่ 3d cp จะไปยังไฟล์ที่เหลือ
4. มิฉะนั้น -ร ระบุตัวเลือกและดำเนินการตามขั้นตอนต่อไปนี้:
ก. ดิ ปลายทาง_file จะต้องสร้างด้วยไฟล์ประเภทเดียวกับ source_file.
NS. ถ้า source_file เป็นไฟล์ประเภท FIFO บิตการอนุญาตไฟล์จะเหมือนกัน
เป็นของ ซอร์ส_ไฟล์, แก้ไขโดยรูปแบบการสร้างไฟล์ของผู้ใช้หาก -หน้า
ไม่ได้ระบุตัวเลือก มิฉะนั้น การอนุญาต ID เจ้าของ และ ID กลุ่มของ
ปลายทาง_file มีการกำหนดการใช้งาน
หากการสร้างนี้ล้มเหลวด้วยเหตุผลใดก็ตาม cp จะเขียนข้อความวินิจฉัยถึง
ข้อผิดพลาดมาตรฐาน ไม่ต้องทำอะไรกับ source_file, และไปต่อที่ใดที่เหลืออยู่
ไฟล์
ค. ถ้า source_file เป็นไฟล์ประเภทลิงก์สัญลักษณ์ และตัวเลือกต้องใช้
ลิงก์สัญลักษณ์ที่จะดำเนินการตามชื่อเส้นทางที่มีอยู่ใน ปลายทาง_file จะต้อง
ให้เหมือนกับชื่อพาธที่มีอยู่ใน source_file.
หากล้มเหลวด้วยเหตุผลใดก็ตาม cp จะต้องเขียนข้อความวินิจฉัยถึงมาตรฐาน
ผิดพลาดอย่าทำอะไรกับ source_fileและไปยังไฟล์ที่เหลือ
หากการใช้งานมีกลไกควบคุมการเข้าใช้เพิ่มเติมหรือทางเลือกอื่น (ดู
ปริมาณคำจำกัดความพื้นฐานของ POSIX.1-2008, Section 4.4, เนื้อไม่มีมัน ทางเข้า สิทธิ์) ของพวกเขา
ผลกระทบต่อสำเนาของไฟล์มีการกำหนดการใช้งาน
OPTIONS
รางวัล cp ยูทิลิตี้จะต้องสอดคล้องกับปริมาณคำจำกัดความพื้นฐานของ POSIX.1-2008 Section 12.2,
ประโยชน์ วากยสัมพันธ์ แนวทาง.
รองรับตัวเลือกต่อไปนี้:
-ฉ หากไม่สามารถรับ file descriptor สำหรับไฟล์ปลายทางได้ตามที่อธิบายไว้ใน
ขั้นตอนที่ 3.a.ii. พยายามยกเลิกการเชื่อมโยงไฟล์ปลายทางและดำเนินการต่อ
-H ดำเนินการตามประเภทและเนื้อหาของไฟล์ที่อ้างอิงโดย any
ลิงก์สัญลักษณ์ที่ระบุเป็น source_file ตัวถูกดำเนินการ
-ฉัน เขียนข้อความแจ้งข้อผิดพลาดมาตรฐานก่อนที่จะคัดลอกไปยังไดเรกทอรีที่ไม่ใช่ไดเรกทอรี
ไฟล์ปลายทาง หากการตอบสนองจากอินพุตมาตรฐานเป็นการยืนยัน ค่า
จะพยายามทำสำเนา; มิฉะนั้นจะไม่
-L ดำเนินการตามประเภทและเนื้อหาของไฟล์ที่อ้างอิงโดย any
ลิงก์สัญลักษณ์ที่ระบุเป็น source_file ตัวถูกดำเนินการหรือลิงก์สัญลักษณ์ใดๆ
พบระหว่างการส่งผ่านลำดับชั้นของไฟล์
-พี ดำเนินการกับลิงก์สัญลักษณ์ใดๆ ที่ระบุเป็น a source_file ตัวถูกดำเนินการหรือใดๆ
ลิงก์สัญลักษณ์ที่พบระหว่างการส่งผ่านลำดับชั้นของไฟล์
-หน้า ทำซ้ำคุณสมบัติต่อไปนี้ของไฟล์ต้นฉบับแต่ละไฟล์ในไฟล์ที่เกี่ยวข้อง
ไฟล์ปลายทาง:
1. เวลาที่แก้ไขข้อมูลล่าสุดและเวลาที่เข้าถึงล่าสุด ถ้านี้
การทำซ้ำล้มเหลวด้วยเหตุผลใดก็ตาม cp จะเขียนข้อความวินิจฉัยถึง
มาตรฐานบกพร่อง.
2. ID ผู้ใช้และ ID กลุ่ม หากการทำซ้ำนี้ล้มเหลวด้วยเหตุผลใดก็ตาม มันคือ
ไม่ระบุว่า cp เขียนข้อความวินิจฉัยข้อผิดพลาดมาตรฐาน
3. บิตการอนุญาตไฟล์และบิต S_ISUID และ S_ISGID อื่น,
กำหนดการใช้งาน บิตอาจถูกทำซ้ำเช่นกัน ถ้าซ้ำกัน
ล้มเหลวด้วยเหตุผลใดก็ตาม cp จะเขียนข้อความวินิจฉัยข้อผิดพลาดมาตรฐาน
หาก ID ผู้ใช้หรือ ID กลุ่มไม่สามารถทำซ้ำได้ ไฟล์อนุญาต bits
S_ISUID และ S_ISGID จะถูกล้าง หากบิตเหล่านี้มีอยู่ในแหล่งที่มา
ไฟล์แต่ไม่ซ้ำกันในไฟล์ปลายทาง ไม่ได้ระบุว่า
cp เขียนข้อความวินิจฉัยข้อผิดพลาดมาตรฐาน
ลำดับที่คุณสมบัติก่อนหน้านี้ซ้ำกันไม่ได้ระบุ
รางวัล ปลายทาง_file จะไม่ถูกลบหากไม่สามารถรักษาลักษณะเหล่านี้ไว้ได้
-ร คัดลอกลำดับชั้นของไฟล์
การระบุตัวเลือกที่ไม่เกิดร่วมกันมากกว่าหนึ่งตัวเลือก -H, -Lและ -พี จะไม่เป็น
ถือว่าผิดพลาด ตัวเลือกสุดท้ายที่ระบุจะต้องกำหนดพฤติกรรมของ
ประโยชน์
ตัวดำเนินการ
ตัวถูกดำเนินการดังต่อไปนี้จะได้รับการสนับสนุน:
source_file
ชื่อพาธของไฟล์ที่จะคัดลอก ถ้า source_file ตัวถูกดำเนินการคือ '-', มันจะ
อ้างถึงไฟล์ชื่อ -; การนำไปปฏิบัติจะไม่ถือว่าเป็นมาตรฐานที่มีความหมาย
อินพุต
target_file
ชื่อพาธของไฟล์ที่มีอยู่หรือไม่มีอยู่ ใช้สำหรับเอาต์พุตเมื่อไฟล์เดียว
ไฟล์ถูกคัดลอก ถ้า target_file ตัวถูกดำเนินการคือ '-', มันจะอ้างถึงไฟล์ชื่อ
-; การใช้งานต้องไม่ถือว่าเป็นผลลัพธ์มาตรฐาน
เป้า ชื่อพาธของไดเร็กทอรีที่มีไฟล์ที่คัดลอก
STDIN
อินพุตมาตรฐานจะใช้เพื่ออ่านบรรทัดอินพุตเพื่อตอบสนองต่อแต่ละการแจ้งเตือน
ระบุไว้ในส่วน STDERR มิฉะนั้น จะไม่สามารถใช้อินพุตมาตรฐานได้
INPUT ไฟล์
ไฟล์อินพุตที่ระบุเป็นตัวถูกดำเนินการอาจเป็นไฟล์ประเภทใดก็ได้
และพวกเรา ตัวแปร
ตัวแปรสภาพแวดล้อมต่อไปนี้จะส่งผลต่อการดำเนินการของ cp:
ภาษา ระบุค่าเริ่มต้นสำหรับตัวแปรการทำให้เป็นสากลที่ไม่ได้ตั้งค่าหรือ
โมฆะ. (ดูปริมาณคำจำกัดความพื้นฐานของ POSIX.1-2008 Section 8.2,
สากล ตัวแปร เพื่อความเหนือกว่าของความเป็นสากล
ตัวแปรที่ใช้ในการกำหนดค่าของหมวดหมู่สถานที่)
LC_ALL หากตั้งค่าเป็นค่าสตริงที่ไม่ว่าง ให้แทนที่ค่าของค่าอื่นๆ ทั้งหมด
ตัวแปรความเป็นสากล
LC_COLLATE
กำหนดโลแคลสำหรับพฤติกรรมของช่วง คลาสสมมูล และมัลติ-
องค์ประกอบการเรียงอักขระที่ใช้ในนิพจน์ทั่วไปแบบขยายที่กำหนดไว้สำหรับ
ใช่expr คำสำคัญสถานที่ใน LC_MESSAGES หมวดหมู่
LC_CTYPE กำหนดสถานที่สำหรับการตีความลำดับไบต์ของข้อมูลข้อความ
เป็นอักขระ (เช่น ไบต์เดี่ยวเมื่อเทียบกับอักขระหลายไบต์ใน
อาร์กิวเมนต์และไฟล์อินพุต) และพฤติกรรมของคลาสอักขระที่ใช้ใน
นิพจน์ทั่วไปแบบขยายที่กำหนดไว้สำหรับ ใช่expr คำสำคัญสถานที่ใน
LC_MESSAGES หมวดหมู่
LC_MESSAGES
กำหนดโลแคลที่ใช้ในการประมวลผลคำตอบยืนยัน และโลแคลที่ใช้
เพื่อส่งผลต่อรูปแบบและเนื้อหาของข้อความวินิจฉัยและข้อความแจ้งที่เขียนถึง
มาตรฐานบกพร่อง.
นศ กำหนดตำแหน่งของแค็ตตาล็อกข้อความสำหรับการประมวลผลของ LC_MESSAGES.
อะซิงโครนัส กิจกรรม
ผิดนัด
STDOUT
ไม่ได้ใช้.
สแตเดอร์
ให้เขียนข้อความแจ้งข้อผิดพลาดมาตรฐานตามเงื่อนไขที่ระบุไว้ใน
ส่วนคำอธิบาย พรอมต์จะต้องมีชื่อพาธปลายทาง แต่รูปแบบของมันคือ
ไม่ระบุเป็นอย่างอื่น มิฉะนั้น ข้อผิดพลาดมาตรฐานจะใช้สำหรับการวินิจฉัยเท่านั้น
ข้อความ
เอาท์พุท ไฟล์
ไฟล์ที่ส่งออกอาจเป็นประเภทใดก็ได้
ขยาย DESCRIPTION
ไม่
EXIT สถานภาพ
ค่าทางออกต่อไปนี้จะถูกส่งคืน:
0 คัดลอกไฟล์ทั้งหมดเรียบร้อยแล้ว
>0 เกิดข้อผิดพลาด
ผลกระทบที่เกิด OF ข้อผิดพลาด
If cp ถูกยกเลิกก่อนเวลาอันควรด้วยสัญญาณหรือข้อผิดพลาดไฟล์หรือลำดับชั้นของไฟล์อาจ
คัดลอกเพียงบางส่วนเท่านั้น และไฟล์และไดเร็กทอรีอาจมีสิทธิ์หรือการเข้าถึงที่ไม่ถูกต้อง
และเวลาในการปรับเปลี่ยน
รางวัล ดังต่อไปนี้ ส่วน เป็น ข้อมูล.
ใบสมัคร การใช้
บิต set-user-ID และ set-group-ID จะถูกล้างอย่างชัดเจนเมื่อสร้างไฟล์ นี้
คือการป้องกันไม่ให้ผู้ใช้สร้างโปรแกรมที่เป็น set-user-ID หรือ set-group-ID ให้กับพวกเขา
เมื่อคัดลอกไฟล์หรือเพื่อให้ไฟล์ set-user-ID หรือ set-group-ID สามารถเข้าถึงได้โดยกลุ่มใหม่
ของผู้ใช้ ตัวอย่างเช่น หากไฟล์เป็น set-user-ID และสำเนามี ID กลุ่มอื่น
กว่าแหล่งที่มากลุ่มผู้ใช้ใหม่มีสิทธิ์ดำเนินการกับโปรแกรม set-user-ID than
ทำก่อนหน้านี้ โดยเฉพาะอย่างยิ่ง นี่เป็นปัญหาสำหรับผู้ใช้ระดับสูงที่คัดลอกแผนผังของผู้ใช้
ตัวอย่าง
ไม่
หลักการและเหตุผล
รางวัล -ฉัน มีตัวเลือกอยู่ในระบบ BSD ทำให้แอปพลิเคชันและผู้ใช้มีวิธีหลีกเลี่ยง
ตั้งใจลบไฟล์เมื่อคัดลอก แม้ว่าเวอร์ชัน 4.3 BSD จะไม่แจ้งถ้า
อินพุตมาตรฐานไม่ใช่เทอร์มินัล นักพัฒนามาตรฐานตัดสินใจว่าใช้ -ฉัน คือ
ร้องขอการโต้ตอบ ดังนั้นเมื่อมีเส้นทางปลายทาง ยูทิลิตี้จะใช้
คำแนะนำจากสิ่งที่ตอบสนองต่ออินพุตมาตรฐาน
ไม่ได้ระบุรูปแบบที่แน่นอนของข้อความแจ้งแบบโต้ตอบ เฉพาะลักษณะทั่วไปของ
มีการระบุเนื้อหาของข้อความแจ้งเนื่องจากการใช้งานอาจต้องการคำอธิบายเพิ่มเติม
พรอมต์มากกว่าที่ใช้ในการใช้งานในอดีต ดังนั้น แอปพลิเคชันที่ใช้
-ฉัน ตัวเลือกอาศัยระบบเพื่อให้กล่องโต้ตอบที่เหมาะสมที่สุดกับผู้ใช้โดยตรง
ตามพฤติกรรมที่ระบุ
รางวัล -หน้า ทางเลือกคือการปฏิบัติทางประวัติศาสตร์บนระบบ BSD ทำซ้ำเวลาของข้อมูลล่าสุด
การแก้ไขและเวลาในการเข้าถึงครั้งล่าสุด ปริมาณของ POSIX.1-2008 นี้ขยายออกไปเพื่อรักษา
ID ผู้ใช้และกลุ่ม รวมถึงการอนุญาตไฟล์ ข้อกำหนดนี้มีชัดเจน
ปัญหาที่ว่าไดเร็กทอรีเกือบจะได้รับการแก้ไขหลังจากคัดลอกแล้ว นี้
ปริมาณของ POSIX.1-2008 กำหนดให้ต้องคงเวลาในการแก้ไขไว้ ถ้อยแถลง
ว่าลำดับการลอกเลียนแบบนั้นไม่ได้กำหนดไว้เป็นการอนุญาต
การใช้งานเพื่อให้มีความปลอดภัยสูงสุดสำหรับผู้ใช้ การดำเนินการ
ควรคำนึงถึงปัญหาด้านความปลอดภัยที่ชัดเจนที่เกี่ยวข้องกับการตั้งค่าเจ้าของกลุ่ม
และโหมดในลำดับที่ไม่ถูกต้องหรือสร้างไฟล์ที่มีเจ้าของกลุ่มหรือโหมดที่แตกต่างจาก
ค่าสุดท้าย
ไม่ได้ระบุว่า cp เขียนข้อความวินิจฉัยเมื่อ ID ผู้ใช้และกลุ่มไม่สามารถ
ถูกกำหนดเนื่องจากการปฏิบัติอย่างกว้างขวางของผู้ใช้ที่ใช้ -หน้า เพื่อทำซ้ำบางส่วนของ
ลักษณะไฟล์ไม่ซ้ำกับผู้อื่น การใช้งานทางประวัติศาสตร์
เขียนเฉพาะข้อความวินิจฉัยข้อผิดพลาดอื่นที่ไม่ใช่ [อีเปิร์ม].
เวอร์ชันก่อนหน้าของมาตรฐานนี้รวมการสนับสนุนสำหรับ -ร ตัวเลือกในการคัดลอกไฟล์
ลำดับชั้น NS -ร ทางเลือกคือแนวปฏิบัติทางประวัติศาสตร์เกี่ยวกับระบบที่ได้มาจาก BSD และ BSD นี้
POSIX.1-2008 ไม่ได้ระบุตัวเลือกอีกต่อไป แต่อาจมีอยู่ในการใช้งานบางอย่าง
รางวัล -ร เพิ่มตัวเลือกเป็นคำพ้องความหมายใกล้เคียงกับ -ร ตัวเลือกที่เลือกเพื่อความสอดคล้องกับ
ตัวเลือกอื่น ๆ ทั้งหมดในเล่มนี้ของ POSIX.1‐2008 ที่ทำโคตรไดเร็กทอรีแบบเรียกซ้ำ
ความแตกต่างระหว่าง -ร และถอดออก -ร ตัวเลือกอยู่ในการรักษาโดย cp ของไฟล์
ประเภทอื่นนอกเหนือจากปกติและไดเร็กทอรี มันถูกนำไปใช้กำหนดวิธีการ - ตัวเลือก
จัดการไฟล์พิเศษเพื่อให้ทั้งการใช้งานในอดีตและไฟล์ที่เลือก
สนับสนุน -ร ที่มีความสามารถเช่นเดียวกับ -ร กำหนดโดยปริมาณของ POSIX.1-2008 นี้ NS
เป็นต้นฉบับ -ร แฟล็กด้วยเหตุผลทางประวัติศาสตร์ไม่ได้จัดการไฟล์พิเศษใด ๆ ที่แตกต่างจาก
ไฟล์ปกติ แต่อ่านไฟล์และคัดลอกเนื้อหาเสมอ นี้มีปัญหาที่ชัดเจน
ต่อหน้าไฟล์ประเภทพิเศษ ตัวอย่างเช่น อุปกรณ์อักขระ FIFO และซ็อกเก็ต
เมื่อเกิดความล้มเหลวระหว่างการคัดลอกลำดับชั้นของไฟล์ cp จะต้องพยายาม
คัดลอกไฟล์ที่อยู่ในระดับเดียวกันในลำดับชั้นหรือเหนือไฟล์ที่ล้มเหลว
ที่เกิดขึ้น. ไม่ระบุหาก cp จะพยายามคัดลอกไฟล์ด้านล่างไฟล์ที่
ความล้มเหลวเกิดขึ้น (ซึ่งไม่สามารถประสบความสำเร็จในทุกกรณี)
สิทธิ์ เจ้าของและกลุ่มของประเภทไฟล์พิเศษที่สร้างขึ้นได้ถูกละทิ้งโดยเจตนา
ตามที่กำหนดไว้ในการดำเนินการ ทั้งนี้เพื่อให้ระบบสามารถตอบสนองความต้องการพิเศษได้ (for
ตัวอย่างการอนุญาตให้ผู้ใช้สร้างอุปกรณ์พิเศษของตัวละคร แต่ต้องการให้เป็น
เป็นเจ้าของโดยกลุ่มใดกลุ่มหนึ่ง) โดยทั่วไปขอแนะนำอย่างยิ่งว่าการอนุญาต
เจ้าของและกลุ่มจะเหมือนกับว่าผู้ใช้ได้เรียกใช้ประวัติศาสตร์ มโนด, ln, หรืออื่น ๆ
ยูทิลิตี้เพื่อสร้างไฟล์. ก็มีแนวโน้มว่าจะต้องใช้สิทธิพิเศษเพิ่มเติมเพื่อ
สร้างบล็อก อักขระ หรือประเภทไฟล์พิเศษอื่นๆ ที่กำหนดการใช้งาน
นอกจากนี้ -หน้า ตัวเลือกกำหนดให้ทุก set-user-ID และ set-group-ID
สิทธิ์จะถูกละทิ้งหากไม่สามารถตั้งค่าเจ้าของหรือ ID กลุ่มใด ๆ ได้ นี่คือการรักษา
ผู้ใช้จากการให้สิทธิพิเศษโดยไม่ได้ตั้งใจเมื่อคัดลอกโปรแกรม
เมื่อสร้างไฟล์ปกติ เวอร์ชันเก่าของ cp ใช้โหมดของไฟล์ต้นฉบับเป็น
แก้ไขโดยรูปแบบการสร้างโหมดไฟล์ ทางเลือกอื่นน่าจะเป็นการใช้โหมดของ
ไฟล์ต้นฉบับไม่ได้แก้ไขโดยรูปแบบการสร้างหรือใช้โหมดเดียวกับที่จะได้รับ
ไปยังไฟล์ใหม่ที่สร้างโดยผู้ใช้ (บวกกับบิตการดำเนินการของไฟล์ต้นทาง) จากนั้น
แก้ไขโดยรูปแบบการสร้างโหมดไฟล์ โดยไม่มีเหตุผลที่ชัดเจนในการเปลี่ยนแปลง
การปฏิบัติทางประวัติศาสตร์ส่วนใหญ่ยังคงอยู่
เมื่อสร้างไดเร็กทอรี เวอร์ชันเก่าของ cp ใช้โหมดของไดเรกทอรีต้นทาง
รวมทั้งอ่าน เขียน และค้นหาบิตสำหรับเจ้าของตามที่แก้ไขโดยการสร้างโหมดไฟล์
หน้ากาก. นี้ทำเพื่อที่ cp สามารถคัดลอกต้นไม้ที่ผู้ใช้ได้อ่านสิทธิ์ แต่
เจ้าของไม่ได้ ผลข้างเคียงคือถ้ารูปแบบการสร้างไฟล์ปฏิเสธเจ้าของ
สิทธิ์ cp ล้มเหลว นอกจากนี้ เมื่อทำสำเนาเสร็จแล้ว . เวอร์ชันประวัติศาสตร์ cp ตั้ง
สิทธิ์บนไดเร็กทอรีที่สร้างให้เหมือนกับไดเร็กทอรีต้นทาง, ไม่ถูกแก้ไขโดย
มาสก์การสร้างไฟล์
พฤติกรรมนี้ได้รับการแก้ไขเพื่อให้ cp สามารถสร้างเนื้อหาของ .ได้เสมอ
ไดเร็กทอรีโดยไม่คำนึงถึงรูปแบบการสร้างไฟล์ หลังจากคัดลอกเสร็จแล้ว สิทธิ์
ถูกตั้งค่าให้เหมือนกับไดเร็กทอรีต้นทางตามที่แก้ไขโดยมาสก์การสร้างไฟล์
การเปลี่ยนแปลงครั้งหลังนี้จากพฤติกรรมในอดีตคือการป้องกันไม่ให้ผู้ใช้สร้างโดยไม่ได้ตั้งใจ
ไดเร็กทอรีที่มีสิทธิ์เกินกว่าที่ปกติจะตั้งค่าและเพื่อความสอดคล้องกับ
พฤติกรรมของ cp ในการสร้างไฟล์.
ไม่ใช่ข้อกำหนดว่า cp ตรวจจับความพยายามที่จะคัดลอกไฟล์ไปยังตัวเอง อย่างไรก็ตาม,
ขอแนะนำให้ใช้งานจริง ตรวจพบการใช้งานในอดีต
ความพยายามในกรณีส่วนใหญ่
มีสองวิธีในการคัดลอกทรีย่อยในเล่มนี้ของ POSIX.1-2008 วิธีอื่น
อธิบายไว้เป็นส่วนหนึ่งของ ท่าน อรรถประโยชน์ (ดู ท่าน). ทั้งสองวิธีเป็นการปฏิบัติทางประวัติศาสตร์
รางวัล cp ยูทิลิตี้ให้อินเทอร์เฟซที่เรียบง่ายและใช้งานง่ายขึ้นในขณะที่ ท่าน นำเสนอปลีกย่อย
ความละเอียดของการควบคุม แต่ละรายการมีฟังก์ชันเพิ่มเติมสำหรับฟังก์ชันอื่นๆ ใน
โดยเฉพาะ ท่าน รักษาโครงสร้างฮาร์ดลิงก์ของลำดับชั้นในขณะที่ cp ไม่. มัน
คือความตั้งใจของผู้พัฒนามาตรฐานว่าผลลัพธ์จะใกล้เคียงกัน (โดยใช้ความเหมาะสม
การรวมตัวเลือกในยูทิลิตี้ทั้งสอง) ผลลัพธ์ไม่จำเป็นต้องเหมือนกัน
ดูเหมือนว่าจะมีกำไรไม่เพียงพอต่อการใช้งานเพื่อปรับสมดุลความยากของ
การใช้งานต้องรับประกันว่าผลลัพธ์จะเหมือนกันทุกประการ
ถ้อยคำที่อนุญาต cp เพื่อคัดลอกไดเร็กทอรีไปยังประเภทไฟล์ที่กำหนดการใช้งานไม่
ระบุโดยไดรฟ์ข้อมูลอินเทอร์เฟซระบบของ POSIX.1-2008 เพื่อให้
การใช้งานที่สนับสนุนลิงก์สัญลักษณ์ไม่จำเป็นต้องห้ามการคัดลอกไดเร็กทอรี
เพื่อเชื่อมโยงสัญลักษณ์ ส่วนขยายอื่น ๆ สำหรับโวลุ่มอินเทอร์เฟซระบบของไฟล์ POSIX.1-2008
ประเภทอาจต้องใช้ช่องโหว่นี้เช่นกัน
อนาคต ลู่ทาง
ไม่
ใช้ cpposix ออนไลน์โดยใช้บริการ onworks.net