วิธีคัดลอกไฟล์โดยใช้คำสั่ง “ติดตั้ง” บน Linux

เผยแพร่แล้ว: 2022-01-29
คอนเซปต์อาร์ตของ Bash บนเดสก์ท็อป Ubuntu Linux
Fatmawati Achmad Zaenuri/Shutterstock.com

install เป็นคำสั่งคัดลอกไฟล์อเนกประสงค์ใน Linux และ macOS เหมาะอย่างยิ่งสำหรับผู้ใช้ระดับสูงที่ต้องการประสิทธิภาพ อ่านบทความนี้เพื่อค้นพบวิธีทำงานอย่างชาญฉลาดยิ่งขึ้น—ไม่ยากขึ้น

รอ—ไม่ใช่สำหรับการติดตั้งซอฟต์แวร์ใช่ไหม

คำสั่ง install อาจมีชื่อคำสั่ง Linux ที่ทำให้เข้าใจผิดมากที่สุด มันไม่ได้ติดตั้งซอฟต์แวร์ใด ๆ เลย หากคุณกำลังพยายามติดตั้งแพ็คเกจซอฟต์แวร์จากบรรทัดคำสั่งใน Ubuntu หรือการแจกจ่ายแบบ Debian อื่น ให้ใช้คำสั่ง apt-get สำหรับลีนุกซ์รุ่นอื่นๆ ให้ใช้เครื่องมือการจัดการแพ็คเกจของลีนุกซ์รุ่นแจกจ่ายแทน—เช่น dnf บน Fedora หรือ zypper บน openSUSE

ดังนั้นการติดตั้งทำอะไร?

สรุปการ install รวมองค์ประกอบจากคำสั่ง cp (คัดลอก), chown (เปลี่ยนเจ้าของ), chmod (โหมดเปลี่ยน), mkdir (สร้างไดเรกทอรี) และคำสั่ง strip (สัญลักษณ์แถบ) ช่วยให้คุณใช้ฟังก์ชันจากฟังก์ชันทั้งหมดได้ในการดำเนินการเดียว

คำสั่ง install สามารถ:

  • คัดลอกไฟล์เช่นคำสั่ง cp
  • เลือกว่าจะเขียนทับไฟล์ที่มีอยู่หรือไม่
  • สร้างไดเร็กทอรีเป้าหมายหากไม่มีอยู่ เช่น mkdir
  • ตั้งค่าสถานะการอนุญาตผู้ใช้ของไฟล์ เช่นเดียวกับคำสั่ง chmod
  • ตั้งค่าเจ้าของไฟล์ เช่นเดียวกับคำสั่ง chown
  • นำสัมภาระที่ไม่จำเป็นออกจากไฟล์สั่งการ เช่นเดียวกับคำสั่ง strip

แม้จะมีฟังก์ชันทั้งหมดนั้น คำสั่ง install ก็ไม่มีตัวเลือกมากมายให้ต้องต่อสู้ด้วย

ติดตั้งหน้าคน

เมื่อไหร่ที่คุณจะใช้มัน

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

โฆษณา

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

ตัวอย่าง

โปรแกรมเมอร์กำลังทำงานกับยูทิลิตี้ใหม่ที่เรียกว่า ana ประกอบด้วยไฟล์ไบนารีที่ปฏิบัติการได้และฐานข้อมูล หลังจากการทดสอบ จะต้องคัดลอกไฟล์ไปยัง /usr/local/bin เพื่อให้พร้อมใช้งานสำหรับผู้ใช้ระบบ Linux ทุกคน คุณจะต้องแทนที่ชื่อไฟล์และเส้นทางไดเรกทอรีในตัวอย่างของเราสำหรับไฟล์และเส้นทางที่คุณใช้บนคอมพิวเตอร์ของคุณเมื่อคุณใช้ install

จนกว่ามันจะพร้อมสำหรับการเปิดตัว มันจะทำการทดสอบในไดเร็กทอรีชื่อ ~/test/ana สมาชิกของกลุ่ม geek จะมีสิทธิ์ในการอ่านและดำเนินการ ผู้ใช้รายอื่นจะมีสิทธิ์ในการอ่านและดำเนินการด้วย คำสั่ง install ใช้การแสดงตัวเลขแบบเดียวกันสำหรับการอนุญาตเช่นเดียวกับ chmod โปรแกรมเมอร์ของเราตัดสินใจว่าต้องตั้งค่าการอนุญาตเป็น:

  • เจ้าของ: อ่าน เขียน และดำเนินการ
  • กลุ่ม: อ่านและดำเนินการ
  • อื่นๆ: ดำเนินการเท่านั้น

วิธีใช้คำสั่ง install

ไดเร็กทอรีการทำงานของโปรแกรมเมอร์สมมติของเราคือ ~/work เขาได้เขียนโปรแกรม คอมไพล์มัน และสร้างไบนารีที่เรียกว่า ana เขาได้สร้างไฟล์ฐานข้อมูลที่ ana ใช้งานได้แล้ว Words.db ดังนั้นไฟล์ทั้งสองจึงพร้อมสำหรับการทดสอบ ลองดูที่พวกเขา:

 ls -l ana Words.db 

โปรแกรมอรรถประโยชน์ ana ที่เขาเพิ่งเขียนสร้างแอนนาแกรมจากวลีที่ให้ไว้ในบรรทัดคำสั่ง การทดสอบยืนยันค่อนข้างตรงไปตรงมา

การทดสอบยูทิลิตี้ ana ในไดเร็กทอรีงาน

โปรแกรมเมอร์ของเราเรียก ana ด้วยวลี "biscuit" และทุกอย่างก็ดูดี ตอนนี้เขาต้องการคัดลอกไฟล์ทั้งสองนี้ไปยังไดเร็กทอรี ~/test/ana เพื่อดูว่ายูทิลิตี้ใหม่ทำงานอย่างถูกต้องหรือไม่จากสภาพแวดล้อมการพัฒนา เขาออกคำสั่งดังต่อไปนี้:

 ติดตั้ง -D -v ana Words.db -t ~/test/ana 

ติดตั้งคำสั่งไปที่ /test/ana

ตัวเลือกที่ใช้ในบรรทัดคำสั่งคือ:

  • D : สร้างไดเร็กทอรี รวมถึงไดเร็กทอรีหลัก หากจำเป็น
  • v : ละเอียด แสดงรายการแต่ละไดเร็กทอรีตามที่สร้างขึ้น และแต่ละไฟล์คัดลอกเมื่อดำเนินการ
  • t : ไดเรกทอรีเป้าหมาย
โฆษณา

เราจะเห็นว่าการ install สร้างไดเร็กทอรี ~/test แล้วสร้างไดเร็กทอรี ~/test/ana ไฟล์ถูกแสดงรายการทีละรายการเนื่องจากถูกคัดลอกไปยังไดเร็กทอรีเป้าหมาย

การแสดงรายการไฟล์ใน ~/test/ana ยืนยันว่าไฟล์เหล่านั้นถูกคัดลอกอย่างถูกต้อง

 ลส -ล 

ls ในไดเร็กทอรี /test/ana

ขั้นตอนต่อไปคือการทดสอบยูทิลิตี้ ana โดยเรียกใช้ในไดเร็กทอรี ~/test/ana

ทดสอบยูทิลิตี้ ana ในไดเร็กทอรี /test/ana

ยูทิลิตี้ทำงานตามที่คาดไว้ซึ่งดีมาก อย่างไรก็ตาม การอนุญาตไม่ถูกต้อง ข้อกำหนดคือการตั้งค่าสมาชิกของกลุ่ม geek ให้มีสิทธิ์ในการอ่านและดำเนินการ และสำหรับผู้ใช้รายอื่นให้ดำเนินการเท่านั้น

เราสามารถแก้ไขปัญหาทั้งสองอย่างง่ายๆ ด้วยคำสั่งต่อไปนี้ สังเกตการใช้ sudo เพื่อรันคำสั่งด้วยสิทธิ์รูท -o และ -g และตัวเลือกต้องการสิ่งนี้ เราจะขอรหัสผ่านเมื่อเราออกคำสั่ง

 sudo install -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana 

ติดตั้งคำสั่งพร้อมตัวเลือกสำรองและการตั้งค่าล่วงหน้า

  • อ็อพชัน -b (backup) จะสร้างการสำรองข้อมูลของไฟล์ก่อนที่จะถูกเขียนทับ
  • ตัวเลือก -S (ส่วนต่อท้าย) กำหนดส่วนต่อท้ายสำหรับไฟล์สำรอง หากคุณไม่ได้ระบุคำต่อท้าย ให้ใช้ ~ (ตัวหนอน) เรากำลังขอให้ install ใช้คำต่อท้าย .bak
  • เราตั้งค่าให้เจ้าของไฟล์เป็น dave ฟโดยใช้ตัวเลือก -o (เจ้าของ)
  • ตัวเลือก -g (กลุ่ม) ต้องการชื่อของกลุ่ม ซึ่งจะกลายเป็นกลุ่มเจ้าของไฟล์ กลุ่มที่เราจะใช้เรียกว่า geek
  • ตัวเลือก -m (โหมด) ตั้งค่าโหมดไฟล์สำหรับไฟล์ โดยใช้ไวยากรณ์ตัวเลข chmod มาตรฐาน

เราไม่จำเป็นต้องใช้ตัวเลือก -D (สร้างไดเร็กทอรี) อีกต่อไป เพราะเรารู้ว่าไดเร็กทอรีทดสอบมีอยู่แล้ว นอกจากนี้เรายังละเว้นตัวเลือก -v (verbose) การแสดงรายการไฟล์ในไดเร็กทอรี ~/test/ana ของเราจะแสดงรายละเอียดไฟล์ให้เราเห็น:

 ลส -ล 

ls ในไดเร็กทอรี /test/ana

นี่เป็นการยืนยันว่าเป็นไปตามข้อกำหนดทั้งหมดของเราแล้ว

  • ไฟล์ถูกคัดลอกไปยังไดเร็กทอรีการทดสอบ
  • สิทธิ์ได้รับการตั้งค่าอย่างถูกต้อง
  • dave ฟเป็นเจ้าของไฟล์
  • กลุ่ม geek คือกลุ่มเจ้าของไฟล์ทั้งสอง
  • สำเนาสำรองของแต่ละไฟล์เรียกว่า ana.bak และ Words.db.bak
โฆษณา

ทั้งหมดนี้ทำได้โดยใช้คำสั่งเดียว ประณีต.

โปรแกรมเมอร์ของเราทำการเปลี่ยนแปลงขั้นสุดท้ายกับยูทิลิตี้และคอมไพล์ใหม่ ไฟล์ที่เปลี่ยนแปลงจะต้องถูกคัดลอกไปยังไดเร็กทอรี ~/test/ana จากไดเร็กทอรี ~/work เราสามารถทำได้โดยใช้ตัวเลือก -C (เปรียบเทียบ) หากไฟล์ต้นทางและไฟล์เป้าหมายเหมือนกัน ไฟล์ต้นฉบับจะไม่ถูกคัดลอก

 sudo install -C -b -S .bak -o dave -g geek -m 751 ana Words.db -t ~/test/ana 

ติดตั้งคำสั่งด้วย -C เปรียบเทียบตัวเลือก

รายชื่อไฟล์ในไดเร็กทอรีเป้าหมายแสดงให้เราเห็นว่าขนาดไฟล์ของไฟล์ ana มีการเปลี่ยนแปลง มีขนาดใหญ่กว่าไฟล์ ana.bak การประทับเวลาบน ana ก็เปลี่ยนไปเช่นกัน การเปลี่ยนแปลงเหล่านี้เกิดจากการคัดลอกไฟล์เวอร์ชันใหม่ที่นี่

 ลส -ล 

อยู่ใน /test/ana พร้อม test fo ana utility

ขนาดไฟล์และการประทับเวลาของไฟล์ Words.db ไม่มีการเปลี่ยนแปลง ไม่มีการเปลี่ยนแปลงใดๆ กับไฟล์ Words.db ดังนั้นจึงไม่มีการคัดลอกไฟล์ดังกล่าว ในโปรเจ็กต์ที่มีไฟล์จำนวนมาก ตัวเลือก -C (เปรียบเทียบ) สามารถประหยัดเวลาและการเปลี่ยนฮาร์ดไดรฟ์ได้มาก โดยคัดลอกเฉพาะไฟล์ที่มีการเปลี่ยนแปลงเท่านั้น

โปรแกรมเมอร์ได้ทดสอบอีกครั้งว่ายูทิลิตี้ ana ยังคงทำงานต่อไป

ถึงเวลาที่จะใช้การ install เพื่อคัดลอกไฟล์ไปยังไดเร็กทอรี /usr/local/bin ซึ่งจะทำให้ยูทิลิตี้ใหม่นี้พร้อมใช้งานสำหรับผู้ใช้คอมพิวเตอร์ Linux เครื่องนี้ทุกคน เรารู้ว่า /usr/local/bin มีอยู่ ดังนั้นเราจึงไม่จำเป็นต้องสร้างไดเร็กทอรีนั้น เราสามารถใช้คำสั่งสุดท้ายของเราในเวอร์ชันที่แก้ไขได้

โฆษณา

เราได้เปลี่ยนไดเรกทอรีเป้าหมายเป็น /usr/local/bin เราได้ลบตัวเลือก -C (เปรียบเทียบ) เนื่องจากยังไม่มีสำเนาของไฟล์เหล่านี้ในไดเร็กทอรีเป้าหมาย ดังนั้นจึงไม่มีอะไรจะเปรียบเทียบ ในทำนองเดียวกัน ไม่มีอะไรต้องสำรองข้อมูล ดังนั้นเราจึงสามารถลบตัวเลือก -b (สำรอง) และตัวเลือก -S (ส่วนต่อท้าย) ได้

 sudo install -o dave -g geek -m 751 ana Words.db -t /usr/local/bin 

ติดตั้งการคัดลอกไฟล์ไปที่ /usr/local/bin

เราสามารถแสดงรายการไฟล์ที่มาถึง /usr/local/bin :

 ลส -ล 

ls ของ /usr/local/bin

และในการทดสอบขั้นสุดท้าย ให้เปลี่ยนไดเร็กทอรีเป็นโฮมไดเร็กตอรี่ของเรา และดูว่าเราสามารถเรียกใช้ยูทิลิตีใหม่จากที่นั่นได้หรือไม่

ทดสอบ ana ยูทิลิตี้

โปรดทราบว่าเราไม่จำเป็นต้องนำหน้าคำสั่ง ana ด้วย ./ / ซึ่งหมายความว่ากำลังทำงานจาก /usr/local/bin ภารกิจเสร็จสมบูรณ์.

เรากล่าวว่าการติดตั้งสามารถดึงตารางสัญลักษณ์ที่ซ้ำซ้อนและสัมภาระอื่นๆ ออกจากภายในไฟล์ไบนารี เพื่อลดขนาดลง มาทำกันตอนนี้เลย โปรดทราบว่าคำสั่งด้านล่างไม่มี Words.db เนื่องจาก Words.db เป็นไฟล์ฐานข้อมูล ไม่ใช่ไฟล์ปฏิบัติการแบบไบนารี ในการคัดลอกและลดขนาดไฟล์ไบนารี ana เราสามารถใช้คำสั่งต่อไปนี้ เราได้เพิ่มตัวเลือก -s (ย่อ) ด้วยตัวพิมพ์เล็ก "s" เราได้เพิ่มกลับเข้าไปในตัวเลือก -b (สำรอง) และตัวเลือก -S (ส่วนต่อท้าย) ด้วยตัวพิมพ์ใหญ่ "S"

 sudo install -s -b -S .bak -o dave -g geek -m 751 ana -t /usr/local/bin 

ติดตั้งตัวเลือกด้วยตัวเลือกแถบ -s

โฆษณา

การแสดงรายการไฟล์ใน /usr/local/bin ทำให้เราสามารถเปรียบเทียบขนาดของไฟล์ ana กับเวอร์ชันสำรองได้ ไฟล์ ana ถูกลดขนาดลงเหลือเกือบ 60% ของขนาดก่อนหน้า

 ls -l /usr/local/bin 

ls ในไดเร็กทอรีงาน

สรุป

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

ที่เกี่ยวข้อง: แล็ปท็อป Linux ที่ดีที่สุดสำหรับนักพัฒนาและผู้ที่ชื่นชอบ