เวิร์กสเตชันออนไลน์ของ OnWorks Linux และ Windows

โลโก้

ฟรีโฮสติ้งออนไลน์สำหรับเวิร์กสเตชัน

<ก่อนหน้านี้ | Contents | ถัดไป>

ปรับปรุงประสิทธิภาพ

เมื่อราคาของ -Exec ใช้การดำเนินการ เรียกใช้อินสแตนซ์ใหม่ของคำสั่งที่ระบุทุกครั้งที่พบไฟล์ที่ตรงกัน มีบางครั้งที่เราอาจต้องการรวมผลการค้นหาทั้งหมดและเรียกใช้อินสแตนซ์ของคำสั่งเดียว ตัวอย่างเช่น แทนที่จะรันคำสั่งเช่นนี้:

ls -l file1

ls -l file2

เราอาจต้องการดำเนินการด้วยวิธีนี้:

ls -l ไฟล์1 ไฟล์2

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

โดยการเปลี่ยนอักขระอัฒภาคต่อท้ายเป็นเครื่องหมายบวก เราเปิดใช้งานความสามารถของ พบ เพื่อรวมผลลัพธ์ของการค้นหาลงในรายการอาร์กิวเมนต์สำหรับการดำเนินการคำสั่งที่ต้องการเพียงครั้งเดียว กลับไปที่ตัวอย่างของเรา สิ่งนี้:


ค้นหา ~ -type f -name 'foo*' -exec ls -l '{}' ';'

ค้นหา ~ -type f -name 'foo*' -exec ls -l '{}' ';'


-rwxr-xr-x 1 ฉัน

-rw-r--r-- 1 ฉัน

-rwxr-xr-x 1 ฉัน

-rw-r--r-- 1 ฉัน


ภาพ

ฉัน 224 2007-10-29 18:44 /home/me/bin/foo

ฉัน 224 2007-10-29 18:44 /home/me/bin/foo

me

me

0 2016-09-19 12:53 /home/me/foo.txt

0 2016-09-19 12:53 /home/me/foo.txt

จะดำเนินการ ls ทุกครั้งที่พบไฟล์ที่ตรงกัน โดยเปลี่ยนคำสั่งเป็น:



ค้นหา ~ -type f -name 'foo*' -exec ls -l '{}' +

ค้นหา ~ -type f -name 'foo*' -exec ls -l '{}' +


-rwxr-xr-x 1 ฉัน

-rw-r--r-- 1 ฉัน

-rwxr-xr-x 1 ฉัน

-rw-r--r-- 1 ฉัน


ภาพ

ฉัน 224 2007-10-29 18:44 /home/me/bin/foo

ฉัน 224 2007-10-29 18:44 /home/me/bin/foo

me

me

0 2016-09-19 12:53 /home/me/foo.txt

0 2016-09-19 12:53 /home/me/foo.txt

เราได้รับผลลัพธ์เหมือนกัน แต่ระบบต้องดำเนินการ .เท่านั้น ls สั่งครั้งเดียว


ระบบปฏิบัติการคลาวด์คอมพิวติ้งยอดนิยมที่ OnWorks: