What the Waters Left Behind Trailer 2 (2018) Los Olvidados
สารบัญ:
diff
เป็นโปรแกรมอรรถประโยชน์บรรทัดคำสั่งที่ช่วยให้คุณสามารถเปรียบเทียบไฟล์สองไฟล์ต่อบรรทัด นอกจากนี้ยังสามารถเปรียบเทียบเนื้อหาของไดเรกทอรี
คำสั่ง
diff
มักใช้เพื่อสร้างแพตช์ที่มีความแตกต่างระหว่างไฟล์หนึ่งไฟล์ขึ้นไปที่สามารถใช้งานได้โดยใช้คำสั่ง
patch
วิธีใช้คำสั่ง
diff
ไวยากรณ์สำหรับคำสั่ง
diff
เป็นดังนี้:
diff… FILES
คำสั่ง
diff
สามารถแสดงเอาต์พุตในหลาย ๆ รูปแบบด้วยรูปแบบปกติบริบทและแบบครบวงจรซึ่งเป็นรูปแบบที่พบได้บ่อยที่สุด เอาท์พุทรวมถึงข้อมูลเกี่ยวกับสายในไฟล์ที่จะต้องมีการเปลี่ยนแปลงเพื่อให้พวกเขากลายเป็นเหมือนกัน หากไฟล์ตรงกันไม่มีการสร้างเอาต์พุต
หากต้องการบันทึกเอาต์พุตคำสั่งลงในไฟล์ให้ใช้โอเปอเรเตอร์การเปลี่ยนเส้นทาง:
diff file1 file2 > patch
เราจะใช้สองไฟล์ต่อไปนี้เพื่ออธิบายวิธีการทำงานของคำสั่ง
diff
:
Ubuntu Arch Linux Debian CentOS Fedora
file2
Kubuntu Ubuntu Debian Arch Linux Centos Fedora
รูปแบบปกติ
ในรูปแบบที่ง่ายที่สุดเมื่อคำสั่ง
diff
รันบนไฟล์ข้อความสองไฟล์โดยไม่มีตัวเลือกใด ๆ มันจะสร้างเอาต์พุตในรูปแบบปกติ:
diff file1 file2
ผลลัพธ์จะมีลักษณะดังนี้:
0a1 > Kubuntu 2d2 < Arch Linux 4c4, 5 < CentOS --- > Arch Linux > Centos
รูปแบบเอาต์พุตปกติประกอบด้วยส่วนหนึ่งส่วนขึ้นไปที่อธิบายความแตกต่าง แต่ละส่วนมีลักษณะดังนี้:
change-command < from-file-line… --- > to-file-line…
0a1
,
2d2
และ
4c4, 5
เป็นคำสั่งการเปลี่ยนแปลง คำสั่งเปลี่ยนแปลงแต่ละคำสั่งประกอบด้วยสิ่งต่อไปนี้จากซ้ายไปขวา:
- หมายเลขบรรทัดหรือช่วงของบรรทัดในไฟล์แรกอักขระการเปลี่ยนแปลงพิเศษหมายเลขบรรทัดหรือช่วงของบรรทัดในไฟล์ที่สอง
อักขระการเปลี่ยนแปลงสามารถเป็นหนึ่งในสิ่งต่อไปนี้:
-
a
- เพิ่มบรรทัดc
- เปลี่ยนบรรทัดd
- ลบเส้น
คำสั่ง change ตามด้วยบรรทัดสมบูรณ์ที่ถูกลบ (
<
) และเพิ่มลงในไฟล์ (
>
)
มาอธิบายผลลัพธ์กันดีกว่า:
-
0a1
- เพิ่มบรรทัดที่1
ของไฟล์ที่สองที่ตอนต้นของไฟล์ 1 (หลังบรรทัดที่0
)-
> Kubuntu
- บรรทัดจากบรรทัดที่สองที่เพิ่มไปยังไฟล์แรกตามที่อธิบายไว้ข้างต้น
2d2
- ลบบรรทัดที่2
ในไฟล์แรก2
หลังจากสัญลักษณ์d
หมายความว่าหากบรรทัดไม่ถูกลบออกก็จะปรากฏในบรรทัดที่2
ในไฟล์ที่สอง-
< Arch Linux
- บรรทัดที่ถูกลบ
4c4, 5
- แทนที่ (เปลี่ยน) บรรทัด5
ในไฟล์แรกด้วยบรรทัด4-5
จากไฟล์ที่สอง-
< CentOS
- บรรทัดในไฟล์แรกที่จะถูกแทนที่---
- ตัวแยก> Arch Linux
และ> Centos
- Lines จากไฟล์ที่สองแทนที่บรรทัดในไฟล์แรก
-
รูปแบบบริบท
เมื่อใช้รูปแบบเอาต์พุตบริบทคำสั่ง
diff
แสดงบริบทหลายบรรทัดรอบบรรทัดที่แตกต่างกันระหว่างไฟล์
ตัวเลือก
-c
บอกให้
diff
สร้างผลลัพธ์ในรูปแบบบริบท:
diff -c file1 file2
*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 6 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 7 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora
เอาต์พุตเริ่มต้นด้วยชื่อและการประทับเวลาหากไฟล์ที่ถูกเปรียบเทียบและหนึ่งหรือหลายส่วนที่อธิบายความแตกต่าง แต่ละส่วนมีลักษณะดังนี้:
*************** *** from-file-line-numbers **** from-file-line… --- to-file-line-numbers ---- to-file-line…
-
from-file-line-numbers
และto-file-line-numbers
บรรทัดหรือช่วงที่คั่นด้วยเครื่องหมายจุลภาคในไฟล์แรกและไฟล์ที่สองตามลำดับfrom-file-line
และto-file-line
- บรรทัดที่แตกต่างและบรรทัดของบริบท:- บรรทัดที่ขึ้นต้นด้วยสองช่องว่างคือบรรทัดของบริบทบรรทัดที่เหมือนกันในไฟล์ทั้งสองบรรทัดที่ขึ้นต้นด้วยสัญลักษณ์ลบ (
-
) คือบรรทัดที่สอดคล้องกับไม่มีอะไรในไฟล์ที่สอง บรรทัดที่ขาดหายไปในไฟล์ที่สองบรรทัดที่เริ่มต้นด้วยเครื่องหมายบวก (+
) คือบรรทัดที่สัมพันธ์กับสิ่งใดในไฟล์แรก บรรทัดที่หายไปในไฟล์แรกบรรทัดที่เริ่มต้นด้วยเครื่องหมายอัศเจรีย์ (!
) คือบรรทัดที่เปลี่ยนระหว่างสองไฟล์ แต่ละกลุ่มของบรรทัดเริ่มต้นด้วย!
จากไฟล์แรกมีการจับคู่ที่ตรงกันในไฟล์ที่สอง
- บรรทัดที่ขึ้นต้นด้วยสองช่องว่างคือบรรทัดของบริบทบรรทัดที่เหมือนกันในไฟล์ทั้งสองบรรทัดที่ขึ้นต้นด้วยสัญลักษณ์ลบ (
มาอธิบายส่วนที่สำคัญที่สุดของผลลัพธ์กันดีกว่า:
- ในตัวอย่างนี้เรามีเพียงส่วนเดียวที่อธิบายความแตกต่าง
*** 1, 6 ****
และ--- 1, 7 ----
บอกเราถึงช่วงของบรรทัดจากไฟล์แรกและไฟล์ที่สองที่รวมอยู่ในส่วนนี้ไลน์Ubuntu
,Debian
,Fedora
และ บรรทัดว่างสุดท้ายจะเหมือนกันในไฟล์ทั้งสอง บรรทัดเหล่านี้เริ่มต้นด้วยเว้นวรรคสองบรรทัด- Arch Linux
จากไฟล์แรกที่สอดคล้องกับไม่มีอะไรในไฟล์ที่สอง แม้ว่าบรรทัดนี้จะมีอยู่ในไฟล์ที่สอง แต่ตำแหน่งนั้นแตกต่างกัน Line+ Kubuntu
จากไฟล์ที่สองสอดคล้องกับอะไรในไฟล์แรก Line! CentOS
! CentOS
จากไฟล์และบรรทัดแรก! Arch Linux
! Arch Linux
และ! CentOS
! CentOS
จากไฟล์ที่สองจะถูกเปลี่ยนระหว่างไฟล์
โดยค่าเริ่มต้นจำนวนของบรรทัดบริบทเริ่มต้นที่สาม ในการระบุหมายเลขอื่นให้ใช้ตัวเลือก
-C
(
--contexts
):
diff -C 1 file1 file2
*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 5 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 6 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora
รูปแบบรวม
รูปแบบเอาต์พุตแบบรวมเป็นเวอร์ชันที่ปรับปรุงแล้วของรูปแบบบริบทและสร้างเอาต์พุตขนาดเล็ก
ใช้ตัวเลือก
-u
เพื่อบอก
diff
เพื่อพิมพ์เอาต์พุตในรูปแบบรวม:
diff -u file1 file2
--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian -CentOS +Arch Linux +Centos Fedora
เอาต์พุตเริ่มต้นด้วยชื่อและการประทับเวลาของไฟล์และหนึ่งหรือหลายส่วนที่อธิบายความแตกต่าง แต่ละส่วนใช้แบบฟอร์มต่อไปนี้:
*************** @@ from-file-line-numbers to-file-line-numbers @@ line-from-files…
-
@@ from-file-line-numbers to-file-line-numbers @@
- หมายเลขบรรทัดหรือช่วงของบรรทัดจากไฟล์แรกและไฟล์ที่สองที่รวมอยู่ในส่วนนี้line-from-files
- บรรทัดที่แตกต่างและบรรทัดของบริบท:- บรรทัดที่ขึ้นต้นด้วยสองช่องว่างคือบรรทัดของบริบทบรรทัดที่เหมือนกันในไฟล์ทั้งสองบรรทัดที่ขึ้นต้นด้วยสัญลักษณ์ลบ (
-
) คือบรรทัดที่ถูก ลบออก จากไฟล์แรกบรรทัดที่เริ่มต้นด้วยเครื่องหมายบวก (+
) คือ บรรทัดที่ถูก เพิ่ม จากไฟล์แรก
- บรรทัดที่ขึ้นต้นด้วยสองช่องว่างคือบรรทัดของบริบทบรรทัดที่เหมือนกันในไฟล์ทั้งสองบรรทัดที่ขึ้นต้นด้วยสัญลักษณ์ลบ (
ไม่สนใจเคส
ดังที่คุณอาจสังเกตเห็นในตัวอย่างข้างต้นคำสั่ง
diff
เป็นแบบตรงตามตัวพิมพ์ใหญ่ - เล็กโดยค่าเริ่มต้น
ใช้ตัวเลือก
-i
เพื่อบอกความ
diff
เพื่อละเว้นตัวพิมพ์:
diff -ui file1 file2
--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian +Arch Linux CentOS Fedora
ข้อสรุป
การเปรียบเทียบไฟล์ข้อความเพื่อความแตกต่างเป็นหนึ่งในงานที่พบบ่อยที่สุดสำหรับผู้ดูแลระบบ Linux
คำสั่ง
diff
เปรียบเทียบไฟล์แบบทีละบรรทัด สำหรับข้อมูลเพิ่มเติมพิมพ์
man diff
ในเทอร์มินัลของคุณ
คำสั่ง linux พื้นฐาน

การรู้วิธีใช้บรรทัดคำสั่งจะมีประโยชน์มาก ในบทความนี้เราจะดำเนินการตามคำสั่ง Linux ที่ใช้บ่อยที่สุดที่ผู้ดูแลระบบ Linux ใช้เป็นประจำทุกวัน
คำสั่ง Chmod ใน linux (การอนุญาตไฟล์)

ใน Linux การเข้าถึงไฟล์นั้นได้รับการจัดการผ่านการอนุญาตไฟล์คุณสมบัติและความเป็นเจ้าของ บทช่วยสอนนี้ครอบคลุมถึงวิธีการใช้คำสั่ง chmod เพื่อเปลี่ยนสิทธิ์การเข้าถึงของไฟล์และไดเรกทอรี
คำสั่ง Chgrp ใน linux (เปลี่ยนกลุ่ม)

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