นี่คือคำสั่ง xargsposix ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
xargs — สร้างรายการอาร์กิวเมนต์และเรียกใช้ยูทิลิตี้
เรื่องย่อ
xargs [-ptx] [-อี ปิด] [−ฉัน ตัวแทน|−ล จำนวน|−n จำนวน]
[-s ขนาด] [ประโยชน์ [อาร์กิวเมนต์...]]
DESCRIPTION
การขอ xargs ยูทิลิตี้จะต้องสร้างบรรทัดคำสั่งที่ประกอบด้วย ประโยชน์ และ อาร์กิวเมนต์
ตัวถูกดำเนินการที่ระบุตามด้วยอาร์กิวเมนต์จำนวนมากที่อ่านตามลำดับจากอินพุตมาตรฐานเป็น
พอดีกับความยาวและข้อจำกัดจำนวนที่ระบุโดยตัวเลือก ดิ xargs ยูทิลิตี้จะ
จากนั้นเรียกใช้บรรทัดคำสั่งที่สร้างขึ้นและรอให้เสร็จสิ้น ลำดับนี้จะ
ซ้ำจนกว่าจะเกิดสิ่งใดสิ่งหนึ่งต่อไปนี้:
* ตรวจพบเงื่อนไขสิ้นสุดไฟล์ในอินพุตมาตรฐาน
* อาร์กิวเมนต์ที่ประกอบด้วยเพียงสตริงท้ายไฟล์แบบลอจิคัล (ดูที่ -อี ปิด
ตัวเลือก) พบได้ในอินพุตมาตรฐานหลังจากการประมวลผลอัญประกาศคู่
การประมวลผลและ -หนีการประมวลผล (ดูย่อหน้าถัดไป) อาร์กิวเมนต์ทั้งหมดขึ้น
ถึงแต่ไม่รวมอาร์กิวเมนต์ที่ประกอบด้วยเพียงสตริงท้ายไฟล์แบบลอจิคัล
จะถูกใช้เป็นอาร์กิวเมนต์ในบรรทัดคำสั่งที่สร้างขึ้น
* การเรียกใช้บรรทัดคำสั่งที่สร้างขึ้นจะส่งคืนสถานะการออก 255
แอปพลิเคชันจะต้องตรวจสอบให้แน่ใจว่าอาร์กิวเมนต์ในอินพุตมาตรฐานถูกคั่นด้วย
ไม่ได้ยกมา ตัวละครที่หนีไม่พ้น ตัวอักษรหรือ ตัวอักษร อา
สตริงที่เป็นศูนย์หรือมากกว่าที่ไม่ใช่เครื่องหมายอัญประกาศ ('"') ตัวอักษรและไม่ใช่ ตัวอักษรสามารถ
ยกมาโดยใส่เครื่องหมายคำพูดคู่ สตริงของศูนย์หรือมากกว่าที่ไม่ใช่
('\'') ตัวอักษรและไม่ใช่ ตัวอักษรสามารถอ้างอิงได้โดยการใส่ไว้ใน
ตัวอักษร อักขระที่ไม่ได้ใส่เครื่องหมายคำพูดใดๆ สามารถหลีกเลี่ยงได้โดยนำหน้าด้วย a
. ยูทิลิตี้ชื่อโดย ประโยชน์ จะต้องถูกประหารชีวิตอย่างน้อยหนึ่งครั้งจนกว่า
ถึง end-of-file หรือพบสตริงการสิ้นสุดไฟล์แบบลอจิคัล ผลลัพธ์คือ
ไม่ได้ระบุว่ายูทิลิตี้ชื่อโดย ประโยชน์ พยายามอ่านจากอินพุตมาตรฐาน
ความยาวบรรทัดคำสั่งที่สร้างขึ้นจะต้องเป็นผลรวมของขนาดเป็นไบต์ของยูทิลิตี้
ชื่อและอาร์กิวเมนต์แต่ละรายการถือเป็นสตริง รวมถึงตัวสิ้นสุดไบต์ null สำหรับแต่ละ
สตริงเหล่านี้ ดิ xargs ยูทิลิตี้จะจำกัดความยาวของบรรทัดคำสั่งเช่นว่าเมื่อ
เรียกใช้บรรทัดคำสั่ง รายการอาร์กิวเมนต์และสภาพแวดล้อมที่รวมกัน (ดู exec ครอบครัว
ของฟังก์ชันในไดรฟ์ข้อมูล System Interfaces ของ POSIX.1-2008) จะต้องไม่เกิน
{ARG_MAX}−2048 ไบต์ ภายในข้อจำกัดนี้ ถ้าทั้ง -น หรือ -s ตัวเลือกที่
ระบุ ความยาวบรรทัดคำสั่งเริ่มต้นต้องมีอย่างน้อย {LINE_MAX}
OPTIONS
การขอ xargs ยูทิลิตี้จะต้องสอดคล้องกับปริมาณคำจำกัดความพื้นฐานของ POSIX.1-2008 Section
12.2, ประโยชน์ วากยสัมพันธ์ แนวทาง.
รองรับตัวเลือกต่อไปนี้:
-อี ปิด ใช้ ปิด เป็นสตริงท้ายไฟล์แบบลอจิคัล ถ้า -อี ไม่ได้ระบุไว้คือ
ไม่ได้ระบุว่าสตริงสิ้นสุดไฟล์แบบลอจิคัลคือ อักขระ
('_') หรือความสามารถสตริงท้ายไฟล์ถูกปิดใช้งาน เมื่อไหร่ ปิด เป็นโมฆะ
สตริง ความสามารถสตริงท้ายไฟล์แบบลอจิคัลจะถูกปิดใช้งานและ
ตัวอักษรจะถูกนำมาตามตัวอักษร
−ฉัน ตัวแทน
โหมดแทรก: ประโยชน์ ถูกดำเนินการสำหรับแต่ละบรรทัดตรรกะจากอินพุตมาตรฐาน
อาร์กิวเมนต์ในอินพุตมาตรฐานจะต้องแยกจากกันโดย unscaped . เท่านั้น
ตัวอักษรไม่ใช่โดย ตัวอักษร ใด ๆ unquoted unescaped ตัวอักษร
ที่จุดเริ่มต้นของแต่ละบรรทัดจะถูกละเว้น อาร์กิวเมนต์ผลลัพธ์จะเป็น
แทรกใน ข้อโต้แย้ง แทนการเกิดขึ้นแต่ละครั้งของ ตัวแทน. อย่างน้อยห้า
ข้อโต้แย้งใน ข้อโต้แย้ง แต่ละรายการสามารถมี ตัวแทน. แต่ละ
ของอาร์กิวเมนต์ที่สร้างขึ้นเหล่านี้ไม่สามารถเติบโตได้มากไปกว่าที่กำหนดไว้ในการดำเนินการ
จำกัด มากกว่าหรือเท่ากับ 255 ไบต์ ตัวเลือก -x จะถูกบังคับ
-L จำนวน การขอ ประโยชน์ จะถูกดำเนินการสำหรับแต่ละอันไม่ว่างเปล่า จำนวน บรรทัดของอาร์กิวเมนต์จาก
อินพุตมาตรฐาน คำวิงวอนครั้งสุดท้ายของ ประโยชน์ จะมีบรรทัดของ .น้อยกว่า
ข้อโต้แย้งถ้าน้อยกว่า จำนวน ยังคง. เส้นจะถือว่าลงท้ายด้วย
แรก เว้นแต่ตัวอักษรสุดท้ายของบรรทัดคือ a ; ต่อท้าย
สัญญาณต่อเนื่องไปยังบรรทัดที่ไม่ว่างถัดไปรวมอยู่ด้วย
-น จำนวน ขอร้อง ประโยชน์ โดยใช้อาร์กิวเมนต์อินพุตมาตรฐานให้ได้มากที่สุด มากถึง จำนวน
(จำนวนเต็มทศนิยมบวก) อาร์กิวเมนต์สูงสุด ควรใช้อาร์กิวเมนต์น้อยลง
ถ้า:
* ความยาวบรรทัดคำสั่งที่สะสมเกินขนาดที่ระบุโดย -s
ตัวเลือก (หรือ {LINE_MAX} หากไม่มี -s ตัวเลือก)
* การวนซ้ำครั้งสุดท้ายมีน้อยกว่า จำนวนแต่ไม่ใช่ศูนย์ ตัวถูกดำเนินการที่เหลืออยู่
-หน้า โหมดพร้อมต์: ผู้ใช้จะถูกถามว่าจะดำเนินการ ประโยชน์ ในการเรียกแต่ละครั้ง
โหมดติดตาม (-t) ถูกเปิดใช้งานเพื่อเขียนอินสแตนซ์คำสั่งที่จะดำเนินการ
ตามด้วยข้อความแจ้งข้อผิดพลาดมาตรฐาน คำตอบยืนยันอ่านจาก
/dev/tty จะดำเนินการตามคำสั่ง; มิฉะนั้นการวิงวอนเฉพาะนั้นของ
ประโยชน์ จะถูกข้ามไป
-s ขนาด ขอร้อง ประโยชน์ ใช้อาร์กิวเมนต์อินพุตมาตรฐานให้ได้มากที่สุดเท่าที่จะเป็นไปได้
ความยาวบรรทัดคำสั่งน้อยกว่า ขนาด (จำนวนเต็มทศนิยมบวก) ไบต์ น้อยลง
อาร์กิวเมนต์จะใช้ถ้า:
* จำนวนอาร์กิวเมนต์ทั้งหมดเกินกว่าที่ระบุโดย -น ตัวเลือก
* จำนวนบรรทัดทั้งหมดเกินที่กำหนดโดย -L ตัวเลือก
* พบจุดสิ้นสุดไฟล์ในอินพุตมาตรฐานก่อน ขนาด ไบต์คือ
สะสม
ค่าของ ขนาด จะต้องรองรับอย่างน้อย {LINE_MAX} ไบต์ โดยมีเงื่อนไขว่า
ตรงตามข้อจำกัดที่ระบุใน DESCRIPTION ไม่รับพิจารณา
ข้อผิดพลาดหากค่าที่มากกว่าที่ได้รับการสนับสนุนโดยการใช้งานหรือ
เกินข้อจำกัดที่ระบุในคำอธิบายจะได้รับ; xargs จะใช้
มูลค่าสูงสุดที่สนับสนุนภายในข้อจำกัด
-t เปิดใช้งานโหมดการติดตาม แต่ละบรรทัดคำสั่งที่สร้างขึ้นจะต้องเขียนเป็นมาตรฐาน
เกิดข้อผิดพลาดก่อนเรียกใช้
-x ยุติหากบรรทัดคำสั่งที่สร้างขึ้นไม่พอดีกับความหมายโดยนัยหรือที่ระบุ
ขนาด (ดู -s ตัวเลือกด้านบน)
ตัวดำเนินการ
ตัวถูกดำเนินการดังต่อไปนี้จะได้รับการสนับสนุน:
ประโยชน์ ชื่อของยูทิลิตีที่จะเรียกใช้ พบโดยพาธการค้นหาโดยใช้ เส้นทาง
ตัวแปรสภาพแวดล้อมที่อธิบายไว้ในปริมาณคำจำกัดความพื้นฐานของ POSIX.1-2008
บท 8, สภาพสิ่งแวดล้อม ตัวแปร. ถ้า ประโยชน์ ละไว้ ค่าเริ่มต้นจะเป็น
เสียงสะท้อน คุณประโยชน์. ถ้า ประโยชน์ ตัวถูกดำเนินการชื่อใด ๆ ในตัวพิเศษในตัว
สาธารณูปโภคใน Section 2.14, พิเศษ Built-In ปุ่ม อเนกประสงค์, ผลลัพธ์ที่ได้คือ
ไม่ได้กำหนด.
อาร์กิวเมนต์ ตัวเลือกเริ่มต้นหรือตัวถูกดำเนินการสำหรับการเรียกใช้ ประโยชน์.
STDIN
อินพุตมาตรฐานต้องเป็นไฟล์ข้อความ ผลลัพธ์จะไม่ถูกระบุหาก end-of-file
ตรวจพบเงื่อนไขทันทีหลังจากการหลบหนี .
INPUT ไฟล์
ไฟล์ /dev/tty จะใช้เพื่ออ่านคำตอบที่ .ต้องการ -หน้า ตัวเลือก
และพวกเรา ตัวแปร
ตัวแปรสภาพแวดล้อมต่อไปนี้จะส่งผลต่อการดำเนินการของ xargs:
ภาษา ระบุค่าเริ่มต้นสำหรับตัวแปรการทำให้เป็นสากลที่ไม่ได้ตั้งค่าหรือ
โมฆะ. (ดูปริมาณคำจำกัดความพื้นฐานของ POSIX.1-2008 Section 8.2,
สากล ตัวแปร เพื่อความเหนือกว่าของความเป็นสากล
ตัวแปรที่ใช้ในการกำหนดค่าของหมวดหมู่สถานที่)
LC_ALL หากตั้งค่าเป็นค่าสตริงที่ไม่ว่าง ให้แทนที่ค่าของค่าอื่นๆ ทั้งหมด
ตัวแปรความเป็นสากล
LC_COLLATE
กำหนดโลแคลสำหรับพฤติกรรมของช่วง คลาสสมมูล และมัลติ-
องค์ประกอบการเรียงอักขระที่ใช้ในนิพจน์ทั่วไปแบบขยายที่กำหนดไว้สำหรับ
ใช่expr คำสำคัญสถานที่ใน LC_MESSAGES หมวดหมู่
LC_CTYPE กำหนดสถานที่สำหรับการตีความลำดับไบต์ของข้อมูลข้อความ
เป็นอักขระ (เช่น ไบต์เดี่ยวเมื่อเทียบกับอักขระหลายไบต์ใน
อาร์กิวเมนต์และไฟล์อินพุต) และพฤติกรรมของคลาสอักขระที่ใช้ใน
นิพจน์ทั่วไปแบบขยายที่กำหนดไว้สำหรับ ใช่expr คำสำคัญสถานที่ใน
LC_MESSAGES หมวดหมู่
LC_MESSAGES
กำหนดโลแคลที่ใช้ในการประมวลผลคำตอบยืนยัน และโลแคลที่ใช้
เพื่อส่งผลต่อรูปแบบและเนื้อหาของข้อความวินิจฉัยและข้อความแจ้งที่เขียนถึง
มาตรฐานบกพร่อง.
นศ กำหนดตำแหน่งของแค็ตตาล็อกข้อความสำหรับการประมวลผลของ LC_MESSAGES.
เส้นทาง กำหนดตำแหน่งของ ประโยชน์ตามที่อธิบายไว้ในโวลุ่มคำจำกัดความพื้นฐาน
ของ POSIX.1–2008, บท 8, สภาพสิ่งแวดล้อม ตัวแปร.
อะซิงโครนัส กิจกรรม
ผิดนัด
STDOUT
ไม่ได้ใช้.
สแตเดอร์
ข้อผิดพลาดมาตรฐานจะใช้สำหรับข้อความวินิจฉัยและ -t และ -หน้า ตัวเลือก. ถ้า
-t มีการระบุตัวเลือก the ประโยชน์ และรายการอาร์กิวเมนต์ที่สร้างขึ้นจะต้องเขียนถึง
ข้อผิดพลาดมาตรฐานเนื่องจากจะถูกเรียกใช้ก่อนที่จะเรียกใช้ ถ้า -หน้า ระบุไว้พร้อมต์
ของรูปแบบต่อไปนี้จะต้องเขียน (ในภาษา POSIX):
"?..."
ที่ท้ายบรรทัดของเอาต์พุตจาก -t.
เอาท์พุท ไฟล์
ไม่
ขยาย DESCRIPTION
ไม่
EXIT สถานภาพ
ค่าทางออกต่อไปนี้จะถูกส่งคืน:
0 การเรียกทั้งหมดของ ประโยชน์ ส่งคืนสถานะการออกเป็นศูนย์
1-125 ไม่สามารถประกอบบรรทัดคำสั่งที่ตรงตามข้อกำหนดที่ระบุได้หนึ่งหรือ
เพิ่มเติมของการวิงวอนของ ประโยชน์ ส่งคืนสถานะการออกที่ไม่ใช่ศูนย์หรืออื่น ๆ
เกิดข้อผิดพลาด
126 ยูทิลิตี้ที่ระบุโดย ประโยชน์ พบแต่ไม่สามารถเรียกใช้ได้
127 ยูทิลิตี้ที่ระบุโดย ประโยชน์ ไม่สามารถพบได้.
ผลกระทบที่เกิด OF ข้อผิดพลาด
หากไม่สามารถประกอบบรรทัดคำสั่งที่ตรงตามข้อกำหนดที่ระบุได้ยูทิลิตี้
ไม่สามารถเรียกใช้ได้ การเรียกใช้ยูทิลิตี้ถูกยกเลิกโดยสัญญาณหรือ
การเรียกยูทิลิตี้ออกด้วยสถานะทางออก 255, the xargs ยูทิลิตี้จะเขียน
ข้อความวินิจฉัยและออกโดยไม่ประมวลผลอินพุตที่เหลือ
การขอ ดังต่อไปนี้ ส่วน เป็น ข้อมูล.
ใบสมัคร การใช้
สถานะการออก 255 อนุญาตให้ใช้ยูทิลิตี้โดย xargs บอก xargs ที่จะยุติถ้ามัน
รู้ว่าไม่มีการเรียกใช้เพิ่มเติมโดยใช้สตรีมข้อมูลปัจจุบันจะสำเร็จ ดังนั้น, ประโยชน์
ควรอย่างชัดเจน ทางออก ด้วยค่าที่เหมาะสมเพื่อหลีกเลี่ยงการส่งคืนด้วย 255 โดยไม่ได้ตั้งใจ
โปรดทราบว่าเนื่องจากอินพุตถูกแยกวิเคราะห์เป็นเส้น อักขระแยกอาร์กิวเมนต์และ
, และอักขระอัญประกาศคู่ใช้สำหรับการอ้างอิง if xargs is
ใช้ในการรวมเอาท์พุตของคำสั่งเช่น พบ dir −พิมพ์ or ls ให้เป็น
ดำเนินการแล้ว ผลลัพธ์ที่ไม่คาดคิดมีแนวโน้มว่าหากชื่อไฟล์ใดมี , , หรือ
อ้างอักขระ ซึ่งสามารถแก้ไขได้โดยใช้ find เพื่อเรียกสคริปต์ที่แปลงแต่ละไฟล์
พบไฟล์ในสตริงที่ยกมา จากนั้นจึงส่งไปยัง xargsแต่โดยส่วนใหญ่จะเป็น
ดีกว่าที่จะมี พบ ทำการรวมอาร์กิวเมนต์เองโดยใช้ -ผู้บริหาร ที่มาคู่กับ '+'
เทอร์มิเนเตอร์แทน ';'. โปรดทราบว่ากฎการเสนอราคาที่ใช้โดย xargs ไม่เหมือนกัน
ในเปลือก พวกเขาไม่สอดคล้องกันที่นี่เนื่องจากแอปพลิเคชันที่มีอยู่ขึ้นอยู่กับ
กฎปัจจุบัน วิธีง่ายๆ (แต่ไม่มีประสิทธิภาพ) ที่สามารถใช้แปลงอินพุตได้
ประกอบด้วยหนึ่งอาร์กิวเมนต์ต่อบรรทัดในรูปแบบที่ยกมาที่ xargs ตีความได้ถูกต้องคือ
เพื่อนำหน้าแต่ละรายการที่ไม่ใช่ ตัวละครที่มี a . ทางเลือกที่มีประสิทธิภาพมากขึ้น
แสดงไว้ในตัวอย่างที่ 2 และตัวอย่างที่ 5 ด้านล่าง
ในการใช้งานที่มีมูลค่ามากสำหรับ {ARG_MAX} xargs อาจสร้างบรรทัดคำสั่ง
นานกว่า {LINE_MAX} สำหรับการเรียกใช้โปรแกรมอรรถประโยชน์นี้ไม่เป็นปัญหา ถ้า xargs is
ที่ใช้ในการสร้างไฟล์ข้อความ ผู้ใช้ควรตั้งค่าบรรทัดคำสั่งสูงสุดอย่างชัดเจน
ความยาวด้วย -s ตัวเลือก
การขอ คำสั่ง, env, ดี, ไม่อัพ, เวลาและ xargs สาธารณูปโภคได้รับการกำหนดให้ใช้ exit
รหัส 127 หากเกิดข้อผิดพลาดเพื่อให้แอปพลิเคชันสามารถแยกแยะ ``ความล้มเหลวในการค้นหา a
ยูทิลิตี '' จาก ``ยูทิลิตี้ที่เรียกใช้ออกโดยมีข้อบ่งชี้ข้อผิดพลาด'' ค่า 127 คือ
เลือกเพราะไม่นิยมใช้ในความหมายอื่น ยูทิลิตี้ส่วนใหญ่ใช้ค่าเล็กน้อย
สำหรับ ``เงื่อนไขข้อผิดพลาดปกติ'' และค่าที่สูงกว่า 128 อาจสับสนกับการสิ้นสุด
เนื่องจากได้รับสัญญาณ ค่า 126 ถูกเลือกในลักษณะคล้ายคลึงกันเพื่อแสดงว่า
พบยูทิลิตี้นี้ แต่ไม่สามารถเรียกใช้ได้ สคริปต์บางตัวทำให้เกิดข้อผิดพลาดที่มีความหมาย
ข้อความที่แยกความแตกต่างระหว่าง 126 และ 127 คดี ความแตกต่างระหว่างรหัสทางออก 126 และ
127 อิงตามแนวทางปฏิบัติของ KornShell ที่ใช้ 127 เมื่อพยายามทั้งหมด exec ยูทิลิตี้
ล้มเหลวด้วย [อีโนเอนท์]และใช้ 126 เมื่อพยายามที่จะ exec ยูทิลิตี้ล้มเหลวสำหรับผู้อื่น
เหตุผล.
ตัวอย่าง
1. คำสั่งต่อไปนี้รวมเอาท์พุตของคำสั่งในวงเล็บ (ลบ
อักขระ) ลงในหนึ่งบรรทัด ซึ่งต่อท้ายบันทึกของไฟล์ มัน
ถือว่าการขยายตัวของ "$0$*" ไม่รวมใดๆ หรือ
อักขระ
(ชื่อบันทึก; วันที่; printf "'%s'\n$0 $*") | xargs -อี "" >>บันทึก
2. คำสั่งต่อไปนี้เรียกใช้ diff ด้วยอาร์กิวเมนต์คู่ที่ต่อเนื่องกัน แต่เดิมพิมพ์
เป็นอาร์กิวเมนต์บรรทัดคำสั่ง ถือว่าไม่มีการฝังตัว ตัวอักษรใน
องค์ประกอบของรายการอาร์กิวเมนต์ดั้งเดิม
printf "%s\n$@" | ความกระหายน้ำ 's/[^[:alnum:]]/\\&/g' |
xargs -อี "" -น 2 -x diff
3. ในคำสั่งต่อไปนี้ ระบบจะถามผู้ใช้ว่าไฟล์ใดในไดเร็กทอรีปัจจุบัน
(ยกเว้น dotfiles) จะต้องถูกเก็บถาวร ไฟล์ถูกเก็บถาวรไว้ใน โค้ง; aหนึ่งที่
เวลาหรือ bหลายครั้ง คำสั่งถือว่าไม่มีชื่อไฟล์มี ,
, , หรืออักขระอัญประกาศคู่
a. ls | xargs -อี "" -หน้า -L 1 ar -ร โค้ง
ข. ls | xargs −E "" −p −L 1 | xargs −E "" ar −r arch
4. คำสั่งต่อไปนี้เรียกใช้ คำสั่ง1 หนึ่งครั้งหรือมากกว่าโดยมีข้อโต้แย้งหลายข้อ
หยุดถ้าการวิงวอนของ คำสั่ง1 มีสถานะการออกไม่เป็นศูนย์
xargs -อี "" sh -ค 'คำสั่ง1 "$@" || ทางออก '255 sh < xargs_input
5. บนระบบที่สอดคล้องกับ XSI คำสั่งต่อไปนี้จะย้ายไฟล์ทั้งหมดจากไดเร็กทอรี $1 ไปยัง
ไดเรกทอรี $2และสะท้อนแต่ละคำสั่ง move ก่อนทำ ถือว่าไม่มี
ชื่อไฟล์มี ตัวละครและนั่นไม่ใช่ $1 ไม่ $2 มี
ลำดับ "{}".
ls -ก "$1" | ความกระหายน้ำ -อี 's/"/"\\""/g' -อี 's/.*/"&"/' |
xargs -อี "" −ฉัน {} -t mv "$1"/{} "$2"/{}
หลักการและเหตุผล
การขอ xargs ยูทิลิตี้มักพบเฉพาะในระบบที่ใช้ระบบ V เท่านั้น รวมระบบ BSD
an ใช้ ยูทิลิตี้ที่ให้การทำงานคล้ายกับ xargs -น จำนวน. รายการ SVID
xargs เป็นส่วนขยายการพัฒนาซอฟต์แวร์ POSIX.1-2008 เล่มนี้ไม่ได้แบ่งปัน
มองว่าใช้เพื่อการพัฒนาเท่านั้น ดังนั้นจึงไม่เป็นทางเลือก
แอปพลิเคชั่นสุดคลาสสิคของ xargs ยูทิลิตี้ร่วมกับ พบ ยูทิลิตี้เพื่อ
ลดจำนวนกระบวนการที่เปิดตัวโดยการใช้ . อย่างง่าย พบ -ผู้บริหาร การรวมกัน
การขอ xargs ยูทิลิตี้ยังใช้เพื่อบังคับใช้ขีดจำกัดบนของหน่วยความจำที่จำเป็นในการเรียกใช้ a
กระบวนการ. เมื่อคำนึงถึงพื้นฐานนี้ POSIX.1-2008 เล่มนี้จึงเลือกเฉพาะค่าต่ำสุดเท่านั้น
คุณสมบัติที่จำเป็น
แม้ว่าสถานะการออก 255 ส่วนใหญ่จะเป็นอุบัติเหตุจากการใช้งานในอดีต แต่ก็
อนุญาตให้ยูทิลิตี้ถูกใช้โดย xargs บอก xargs ที่จะยุติถ้าไม่รู้ต่อไป
การร้องขอโดยใช้กระแสข้อมูลปัจจุบันจะประสบความสำเร็จ สถานะการออกที่ไม่ใช่ศูนย์ใดๆ จาก a
ยูทิลิตี้ตกอยู่ในช่วง 1-125 เมื่อ xargs ทางออก ไม่มีข้อความว่า
รหัสสถานะการออกยูทิลิตี้ที่ไม่ใช่ศูนย์ต่างๆ จะถูกสะสมโดย xargs. ค่าอาจเป็น
การเพิ่มรหัสทั้งหมด ค่าสูงสุด รหัสสุดท้ายที่ได้รับ หรือค่าเดียว
เช่น 1 เนื่องจากไม่มีอัลกอริธึมใดที่ดีกว่าอัลกอริทึมอื่น ๆ และเนื่องจากหลาย ๆ
ยูทิลิตี้มาตรฐานพูดมากกว่า (พกพา) เล็กน้อยกว่า ``ผ่าน / ล้มเหลว' ไม่มีอัลกอริธึมใหม่
ประดิษฐ์.
อื่น ๆ อีกมากมาย xargs ตัวเลือกถูกลบออกเพราะมีทางเลือกง่ายๆ อยู่แล้วภายใน
ปริมาณของ POSIX.1-2008 นี้ ตัวอย่างเช่น -ฉัน ตัวแทน ทางเลือกก็มีประสิทธิภาพเช่นกัน
ดำเนินการโดยใช้เชลล์ สำหรับ ห่วง ตั้งแต่ xargs เรียก exec ฟังก์ชันกับอินพุตแต่ละบรรทัด
-ฉัน ตัวเลือกมักจะไม่ใช้ประโยชน์จากความสามารถในการจัดกลุ่มของ xargs.
ความต้องการที่ xargs ไม่เคยสร้างบรรทัดคำสั่งที่เรียกใช้ ประโยชน์ is
ภายใน 2048 ไบต์ของการกดปุ่ม POSIX exec ข้อจำกัด {ARG_MAX} มีวัตถุประสงค์เพื่อรับประกัน
ว่ายูทิลิตี้ที่เรียกใช้มีที่ว่างในการปรับเปลี่ยนตัวแปรสภาพแวดล้อมและบรรทัดคำสั่ง
ข้อโต้แย้งและยังสามารถเรียกใช้ยูทิลิตี้อื่นได้ โปรดทราบว่าขั้นต่ำ {ARG_MAX}
อนุญาตโดยไดรฟ์ข้อมูลอินเทอร์เฟซระบบของ POSIX.1-2008 คือ 4096 ไบต์และต่ำสุด
ค่าที่อนุญาตโดยปริมาณของ POSIX.1-2008 นี้คือ 2048 ไบต์ ดังนั้น 2048 ไบต์
ความแตกต่างดูเหมือนสมเหตุสมผล อย่างไรก็ตาม โปรดทราบว่า xargs ไม่อาจเรียก . ได้
ยูทิลิตี้หากสภาพแวดล้อมส่งผ่านไปยัง xargs ใกล้เคียงกับการใช้ {ARG_MAX} ไบต์
รุ่นของ xargs ที่กำหนดโดย POSIX.1-2008 เล่มนี้ ต้องรอให้
เสร็จสิ้นคำสั่งที่เรียกใช้ก่อนที่จะเรียกใช้คำสั่งอื่น ที่ทำไปเพราะ
สคริปต์ประวัติศาสตร์โดยใช้ xargs ถือว่าดำเนินการตามลำดับ การดำเนินการที่ต้องการ
ให้การทำงานแบบขนานของยูทิลิตี้ที่เรียกใช้นั้นได้รับการสนับสนุนให้เพิ่มตัวเลือก
เปิดใช้งานการวิงวอนแบบคู่ขนาน แต่ควรรอการสิ้นสุดของลูกๆ ทั้งหมด
ก่อน xargs สิ้นสุดตามปกติ
การขอ -อี ตัวเลือกถูกละเว้นจากมาตรฐาน ISO POSIX-2: 1993 โดยเชื่อว่า ปิด
option-argument ได้รับการยอมรับก็ต่อเมื่ออยู่ในบรรทัดโดยตัวมันเองและก่อนใบเสนอราคาและ
มีการดำเนินการ Escape และการประมวลผลสิ้นสุดไฟล์แบบลอจิคัลเท่านั้น
เปิดใช้งานถ้า -อี ระบุตัวเลือกแล้ว ในกรณีนั้นง่าย ความกระหายน้ำ สคริปต์สามารถนำมาใช้เพื่อ
ทำซ้ำ -อี ฟังก์ชั่น จากการสอบสวนเพิ่มเติมพบว่า:
* สตริงท้ายไฟล์แบบลอจิคัลได้รับการตรวจสอบหลังจากการประมวลผลใบเสนอราคาและหลีก
ทำ ความกระหายน้ำ สคริปต์ที่ให้การทำงานที่เทียบเท่ากันยากขึ้นมาก
เขียน.
* ค่าดีฟอลต์คือการประมวลผล end-of-file แบบลอจิคัลด้วย an เป็น
สตริงท้ายไฟล์แบบลอจิคัล
เพื่อแก้ไขความเข้าใจผิดนี้ the -อี ปิด ตัวเลือกถูกนำมาใช้จาก X/Open
คู่มือการพกพา ผู้ใช้ควรสังเกตว่าคำอธิบายของ -อี ตัวเลือกที่ตรงกัน
เอกสารทางประวัติศาสตร์ของ -อี ตัวเลือก (ซึ่งไม่ได้นำมาใช้เพราะไม่ได้
สนับสนุนแนวทางยูทิลิตี้ไวยากรณ์) โดยบอกว่าถ้า ปิด เป็นสตริงว่าง
การประมวลผลท้ายไฟล์แบบลอจิคัลถูกปิดใช้งาน การใช้งานทางประวัติศาสตร์ของ xargs จริง
ไม่ได้ปิดใช้งานการประมวลผลท้ายไฟล์แบบลอจิคัล พวกเขาปฏิบัติต่ออาร์กิวเมนต์ null ที่พบใน
อินพุตเป็นสตริงท้ายไฟล์แบบลอจิคัล (เป็นโมฆะ เชือก อาร์กิวเมนต์สามารถสร้างได้โดยใช้
เครื่องหมายคำพูดเดี่ยวหรือคู่ ('' or ""). เนื่องจากพฤติกรรมนี้ไม่ได้บันทึกไว้ในอดีต
ถือว่าเป็นจุดบกพร่อง
การขอ −ฉัน, -Lและ -น ตัวเลือกเป็นเอกสิทธิ์ซึ่งกันและกัน การใช้งานบางอย่างใช้อันสุดท้าย
ระบุว่ามีมากกว่าหนึ่งรายการในบรรทัดคำสั่ง การใช้งานอื่น ๆ รักษา
การรวมกันของตัวเลือกในรูปแบบต่างๆ
อนาคต ลู่ทาง
ไม่
ใช้ xargsposix ออนไลน์โดยใช้บริการ onworks.net