ใช้คำสั่ง 'cp' เพื่อคัดลอกและวางไดเรกทอรีทั้งหมดจากที่หนึ่งไปยังอีกที่หนึ่ง
ไม่ว่าคุณจะใช้ระบบปฏิบัติการใด การคัดลอกไฟล์หนึ่งไฟล์หรือโฟลเดอร์จากที่หนึ่งไปยังอีกที่หนึ่งเป็นงานพื้นฐานที่สุดที่คุณทำทุกวัน ในวันที่วุ่นวายในที่ทำงาน ระหว่างการมอบหมายโครงการที่โรงเรียน หรือระหว่างการพัฒนาโครงการอย่างต่อเนื่อง การคัดลอกไฟล์จากตำแหน่ง A ไปยังตำแหน่ง B เป็นสิ่งที่หลีกเลี่ยงไม่ได้
การคัดลอกไฟล์หรือโฟลเดอร์มักจะทำโดยใช้ GUI Linux ดูแลนิสัยของคุณในการทำงานบนเทอร์มินัลโดยจัดเตรียมยูทิลิตี้บรรทัดคำสั่งที่ให้คุณคัดลอกไฟล์หรือโฟลเดอร์จากที่หนึ่งไปยังอีกที่หนึ่ง ใช้ cp
คำสั่งที่มีตัวเลือกมากมายให้คุณมีอิสระในการคัดลอกไฟล์และโฟลเดอร์ได้หลายวิธี
ให้ฉันแนะนำคุณผ่านบทความนี้ที่คุณจะได้เรียนรู้เกี่ยวกับ cp
คำสั่งและวิธีคัดลอกไดเร็กทอรีพร้อมกับเนื้อหา
ตัวเลือกที่ใช้ได้กับ cp
สั่งการ
นี่คือตัวเลือกทั่วไปที่ใช้กับ cp
คำสั่งในบริบทของการคัดลอกไดเร็กทอรีและเนื้อหาทั้งหมด
ตัวเลือก | คำอธิบาย |
-v | โหมด verbose (แสดงความคืบหน้า) |
-r/R | คัดลอกไดเรกทอรีซ้ำ ๆ |
-น | อย่าเขียนทับไฟล์หรือโฟลเดอร์ที่มีอยู่ |
-ผม | แจ้งก่อนเขียนทับ |
คัดลอกไดเร็กทอรีจากที่หนึ่งไปยังอีกที่หนึ่ง
มาเริ่มกันที่การใช้งานพื้นฐานที่สุดของ cp
สั่งการ. เราจะใช้คำสั่งนี้กับตัวเลือก -r
.
ใช้ -r
ตัวเลือกช่วยให้แน่ใจว่าโฟลเดอร์ย่อยและไฟล์ภายในไดเร็กทอรีที่คุณกำลังคัดลอกจะถูกคัดลอกด้วย
ไวยากรณ์:
cp -r [source_location] [target_location]
ตัวอย่าง:
ฉันมีสองไดเร็กทอรีภายในไดเร็กทอรีการทำงานปัจจุบันที่เรียกว่า 'project' และ 'workspace'
ในตัวอย่างนี้ ฉันจะใช้ cp -r
คำสั่งให้คัดลอกไดเร็กทอรี 'project' พร้อมกับเนื้อหาทั้งหมดไปยังตำแหน่งใหม่ เช่น '/home/gaurav/workspace' นี่หมายความว่าฉันกำลังคัดลอกไดเร็กทอรีชื่อ 'project' ไปยังไดเร็กทอรีชื่อ 'workspace'
นี่คือเนื้อหาของไดเรกทอรี 'โครงการ' ใช้ ลส
คำสั่งให้แสดงเนื้อหา
gaurav@ubuntu:~/project$ ls -al total 288 drwxr-xr-x 6 gaurav gaurav 4096 Sep 17 18:26 น. drwxr-xr-x 88 gaurav gaurav 266240 ก.ย. 17 18:24 .. drwxr-xr-x 2 gaurav gaurav 4096 ก.ย. 17 18:25 dem1, drwxr-xr-x 2 gaurav gaurav 4096 17 ก.ย. 18:25 dem2 drwxr-xr -x 2 gaurav gaurav 4096 ก.ย. 17 18:25 dem3 drwxr-xr-x 2 gaurav gaurav 4096 ก.ย. 17 18:25 dem4 -rw-r--r-- 1 gaurav gaurav 24 ก.ย. 60 18:26 temp.c gaurav@ อูบุนตู:~/project$
ตอนนี้ใช้ cp -r
คำสั่งเราสามารถคัดลอกไดเร็กทอรี 'project' ไปยังตำแหน่งที่ต้องการได้
gaurav@ubuntu:~$ cp -r /home/gaurav/project /home/gaurav/workspace gaurav@ubuntu:~$
เอาท์พุท:
gaurav@ubuntu:~/workspace$ ls -al total 408 drwxrwxr-x 4 gaurav gaurav 4096 17 ก.ย. 18:27 น. drwxr-xr-x 88 gaurav gaurav 266240 17 ก.ย. 18:24 .. drwxrwxr-x 3 gaurav gaurav 4096 22 มี.ค. 2018 .metadata drwxr-xr-x 6 gaurav gaurav 4096 17 ก.ย. 18:27 โครงการ -rw-r--r -- 1 gaurav gaurav 1535 ก.ย. 59 17:13 น. source.c gaurav@ubuntu:~/workspace$
ในผลลัพธ์ด้านบน เราจะเห็นว่าไดเร็กทอรี 'project' ถูกคัดลอกจากตำแหน่งเดิมไปยังตำแหน่งใหม่นี้ '/home/gaurav/workspace' ตอนนี้ให้เราเปิดไดเร็กทอรี 'project' และตรวจสอบว่าเนื้อหาทั้งหมดภายในนั้นถูกคัดลอกด้วยหรือไม่
gaurav@ubuntu:~$ cd ./workspace/project gaurav@ubuntu:~/workspace/project$
บันทึก: ฉันได้ใช้ ./
ที่นี่แทนที่จะเข้าสู่เส้นทางที่สมบูรณ์ มันหมายความว่ามันเป็นเส้นทางไดเรกทอรีหลักของฉัน และพื้นที่ทำงานอยู่ในไดเรกทอรีบ้านหรือที่ทำงานปัจจุบันของฉัน สำหรับความกระจ่างเพิ่มเติมเกี่ยวกับเรื่องนี้ คุณสามารถตรวจสอบบทความนี้
เอาท์พุท:
gaurav@ubuntu:~/workspace/project$ ls -al total 28 drwxr-xr-x 6 gaurav gaurav 4096 Sep 17 18:27 น. drwxrwxr-x 4 gaurav gaurav 4096 ก.ย. 17 18:27 .. drwxr-xr-x 2 gaurav gaurav 4096 ก.ย. 17 18:27 dem1, drwxr-xr-x 2 gaurav gaurav 4096 ก.ย. 17 18:27 dem2 drwxr-xr-x 2 gaurav gaurav 4096 17 ก.ย. 18:27 dem3 drwxr-xr-x 2 gaurav gaurav 4096 17 ก.ย. 18:27 dem4 -rw-r--r-- 1 gaurav gaurav 24 ก.ย. 60 18:27 temp.c gaurav@ubuntu: ~/พื้นที่ทำงาน/โครงการ$
จากผลลัพธ์นี้ เราสามารถสรุปได้ว่าเนื้อหาทั้งหมดของไดเร็กทอรี 'project' จะถูกย้ายไปยังตำแหน่งใหม่ด้วย
การคัดลอกหลายไดเร็กทอรีจากที่หนึ่งไปยังอีกที่หนึ่ง
ในการคัดลอกหลายไดเร็กทอรี cp
คำสั่งสามารถใช้ในลักษณะเดียวกับที่กล่าวข้างต้น การเปลี่ยนแปลงเพียงอย่างเดียวคือคุณจะต้องป้อนเส้นทางต้นทางหลายเส้นทางของหลายไดเรกทอรีเพื่อคัดลอก
ไวยากรณ์:
cp -r [source_path_1] [source_path_n] [destination_path]
ให้เราตรวจสอบคำสั่งนี้ด้วยตัวอย่าง
ตัวอย่าง:
gaurav@ubuntu:~/workspace$ cp -r ./snap ./project /home/gaurav/tomcat
ที่นี่ ฉันได้คัดลอกสองไดเร็กทอรี 'snap' และ 'project' จากไดเร็กทอรีการทำงานปัจจุบันของฉันไปยังตำแหน่งใหม่ '/home/gaurav/tomcat'
ตอนนี้ให้เราตรวจสอบว่าไดเร็กทอรีถูกคัดลอกพร้อมกับเนื้อหาไปยังตำแหน่งใหม่หรือไม่
gaurav@ubuntu:~/tomcat$ ls -al total 9316 drwxrwxr-x 5 gaurav gaurav 4096 Sep 19 12:16 น. drwxr-xr-x 88 gaurav gaurav 266240 19 ก.ย. 12:15 .. drwxr-xr-x 6 gaurav gaurav 4096 ก.ย. 19 12:16 น. โครงการ drwxr-xr-x 7 gaurav gaurav 4096 ก.ย. 19 12:16 snap
ตรวจสอบว่าเนื้อหาของไดเร็กทอรีเหล่านี้ถูกคัดลอกด้วยหรือไม่
gaurav@ubuntu:~/tomcat/snap$ ls couchdb eclipse htop pycharm-community vim-editor gaurav@ubuntu:~/tomcat/snap$
gaurav@ubuntu:~/tomcat/project$ ls dem1, dem2 dem3 dem4 temp.c gaurav@ubuntu:~/tomcat/project$
โดยใช้ cp
คำสั่งด้วยโหมด verbose
ใช้ cp
คำสั่งด้วยตัวเลือก -v
เปิดใช้งานโหมด verbose คุณสมบัตินี้แสดงไฟล์บนเทอร์มินัลที่กำลังคัดลอก ชื่อของไฟล์หรือโฟลเดอร์ที่กำลังคัดลอกจะแสดงบนเทอร์มินัลของคุณ
ไวยากรณ์:
cp -vr [source_directory] [target_location_path]
ตัวอย่าง:
gaurav@ubuntu:~$ cp -vr ./workspace/apache ./space
ในตัวอย่างนี้ ไดเร็กทอรี 'apache' จะถูกคัดลอกไปยังโฟลเดอร์ใหม่ 'space' ฉันได้ใช้ -v
ตัวเลือกด้วย -r
เพื่อให้เนื้อหาทั้งหมดของไดเร็กทอรี apache ถูกคัดลอกด้วย
เอาท์พุท:
'./workspace/apache' -> './space/apache' './workspace/apache/apache-tomcat-8.0.52.tar.gz' -> './space/apache/apache-tomcat-8.0. 52.tar.gz' gaurav@ubuntu:~$
ผลลัพธ์จะแสดงไดเร็กทอรีที่กำลังคัดลอก ขั้นตอนเดียวกันสามารถทำได้ในกรณีที่คัดลอกหลายไฟล์
หลีกเลี่ยงการเขียนทับเมื่อใช้ cp
สั่งการ
บางครั้งในขณะที่ใช้ cp
คำสั่งให้คัดลอกไฟล์หรือโฟลเดอร์หลายไฟล์ คุณอาจเขียนทับไฟล์ที่คัดลอกไปยังตำแหน่งใหม่แล้ว เพื่อหลีกเลี่ยงปัญหานี้ ขอแนะนำให้ใช้ -ผม
ตัวเลือกด้วย cp
สั่งการ. ซึ่งจะแจ้งให้คุณทราบก่อนที่จะเขียนทับไฟล์หรือโฟลเดอร์ใดๆ
ไวยากรณ์:
cp -ri [source_directory_path] [target_location_path]
บันทึก: ที่นี่ในไวยากรณ์ที่ฉันใช้ -r
ตัวเลือกเช่นกัน นี้จะคัดลอกเนื้อหาของไดเรกทอรีด้วย นอกจากนี้ยังจะตรวจสอบว่าโฟลเดอร์ย่อยและไฟล์เหล่านี้ภายในไดเร็กทอรีถูกเขียนทับหรือไม่
ตัวอย่าง:
gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat cp: overwrite './tomcat/snap/pycharm-community/current'?
ที่นี่ ฉันพยายามคัดลอกไดเร็กทอรีชื่อ 'snap' ไปยังตำแหน่งใหม่ แต่ชื่อไดเร็กทอรี 'snap' มีอยู่แล้วที่ตำแหน่งใหม่ ดังนั้นฉันจะได้รับแจ้งจากเทอร์มินัลก่อนที่จะเขียนทับไดเร็กทอรี snap ที่มีอยู่
คุณสามารถพิมพ์ 'ใช่
' หรือ 'ไม่
' เป็นการตอบสนองต่อข้อความแจ้งนี้
ในกรณีที่คุณไม่ได้ใช้ -ผม
ตัวเลือก ไดเร็กทอรีที่มีอยู่จะถูกเขียนทับโดยไดเร็กทอรีใหม่
ข้ามการเขียนทับไฟล์และไดเร็กทอรีด้วย cp
สั่งการ
เราสามารถใช้ -น
ตัวเลือกเพื่อสั่งให้เทอร์มินัลโดยตรงไม่เขียนทับ และเพียงแค่ข้ามไฟล์และไดเรกทอรีที่คล้ายกันในขณะที่ใช้ cp
สั่งการ.
ไวยากรณ์:
cp -nr [source_directory_path] [target_location_path]
การใช้คำสั่งนี้ทำให้มั่นใจได้ว่าไฟล์และโฟลเดอร์ของคุณจะไม่ถูกเขียนทับ
ตัวอย่าง:
gaurav@ubuntu:~$ cp -ri ./workspace/snap ./tomcat gaurav@ubuntu:~$
ที่นี่ ไดเร็กทอรี 'snap' มีอยู่แล้วที่ตำแหน่งเป้าหมาย ดังนั้น การใช้ -น
ตัวเลือกจะทำให้แน่ใจว่าจะไม่เขียนทับไดเร็กทอรีนี้
ไม่เหมือน -ผม
ตัวเลือก ที่นี่คุณจะไม่ได้รับแจ้งเกี่ยวกับการเขียนทับ
บทสรุป
ใช้ cp
คำสั่งให้คัดลอกไดเร็กทอรีและเนื้อหาในลินุกซ์เป็นกระบวนการที่ง่าย หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ cp
คำสั่งพร้อมตัวเลือกอื่น ๆ ที่มีอยู่ คุณสามารถตรวจสอบหน้าคู่มือโดยพิมพ์ ผู้ชาย cp
ในเทอร์มินัล Linux ของคุณ