คำถามติดแท็ก options

ตัวเลือกการส่งผ่านเช่น -l หรือ --word ไปยังคำสั่งหรือแยกวิเคราะห์ในสคริปต์

10
ฉันจะลบไฟล์ที่ชื่อขึ้นต้นด้วย“ -” (เครื่องหมายขีดกลางหรือขีดกลาง) ได้อย่างไร
คุณจะลบไฟล์ที่ชื่อไฟล์เริ่มต้นด้วยเครื่องหมายขีดกลาง (ขีดกลางหรือลบ) ได้-อย่างไร ฉันจะเข้าสู่เซิร์ฟเวอร์ OSX ระยะไกลและฉันมีไฟล์นี้ในไดเรกทอรีของฉัน: tohru:~ $ ls -l total 8 -rw-r--r-- 1 me staff 1352 Aug 18 14:33 --help ... ฉันจะลบ--helpจาก CLI ได้อย่างไรในโลก ปัญหานี้เป็นสิ่งที่ฉันเจอในรูปแบบที่แตกต่างกันในบางโอกาสไฟล์เหล่านี้ง่ายต่อการสร้าง แต่ยากที่จะกำจัด ฉันได้ลองใช้แบ็กสแลช rm \-\-help ฉันได้ลองเสนอราคา rm "--help" ฉันจะป้องกันไม่ให้อักขระลบ (ขีดกลางหรือเครื่องหมายขีดคั่น) เป็นตัวเลือกได้อย่างไร

3
ฉันจะรันสคริปต์โลคัลบนเครื่องรีโมตและรวมอาร์กิวเมนต์ได้อย่างไร?
ฉันได้เขียนสคริปต์ที่ทำงานได้ดีเมื่อดำเนินการภายใน: ./sysMole -time Aug 18 18 อาร์กิวเมนต์"-time" , "Aug" , "18"และ"18"ถูกส่งผ่านไปยังสคริปต์ได้สำเร็จ ตอนนี้สคริปต์นี้ได้รับการออกแบบให้ทำงานบนเครื่องระยะไกล แต่จากไดเรกทอรีท้องถิ่นในเครื่องท้องถิ่น ตัวอย่าง: ssh root@remoteServer "bash -s" < /var/www/html/ops1/sysMole ที่ยังใช้งานได้ดี แต่ปัญหาเกิดขึ้นเมื่อฉันพยายามที่จะรวมข้อโต้แย้งดังกล่าว(- เวลา 18 สิงหาคม 18)ตัวอย่างเช่น: ssh root@remoteServer "bash -s" < /var/www/html/ops1/sysMole -time Aug 18 18 หลังจากรันสคริปต์นั้นฉันได้รับข้อผิดพลาดต่อไปนี้: bash: cannot set terminal process group (-1): Invalid argument bash: no job control …

1
อะไรคือวัตถุประสงค์ที่แท้จริงของตัวเลือก -X GNU grep และทำไมมันไม่มีเอกสาร?
จากการอ่านคำถามนี้ฉันได้ค้นพบว่า GNU grepมี-Xตัวเลือกที่คาดว่าจะมีข้อโต้แย้ง น่าแปลกที่มันถูกกล่าวถึงไม่ว่าในหน้าคนหรือในหน้าข้อมูล ดูซอร์สโค้ดมีคอมเม้นต์นั้นอยู่ตรงกลาง--helpเอาท์พุท : /* -X is deliberately undocumented. */ มองต่อไปก็ปรากฏว่า-X matcherตัวเลือกชุดเครื่องมือที่ใช้สำหรับแต่ง regexp , matcherเป็นหนึ่ง grep , egrep, fgrep, awk, gawk, posixawkและperl(เหมือนรุ่น 2.25) บางส่วนของค่าเหล่านั้นอย่างเคร่งครัดเหมือนกันกับตัวเลือกที่มีอยู่ (คือgrep -G, grep -E, grep -Fและgrep -P) ในขณะที่awkตัวแปรทั้งสามไม่มีตัวเลือกที่สอดคล้องกัน มีคนรู้ว่าอะไรคือวัตถุประสงค์ที่แท้จริงของตัวเลือกนี้โดยเฉพาะอย่างยิ่งกับหนึ่งในโปรแกรมawkregexp ใครสามารถบอกฉันได้ว่าทำไมมันถึงไม่มีเอกสารรับรองโดยเจตนา?
58 grep  options 

6
เครื่องหมายขีดกลางเดี่ยว `- 'สำหรับตัวเลือกอักขระเดียว แต่ขีดกลางสองเท่า' - 'สำหรับคำ?
แบบแผนของการใช้เครื่องหมายขีดกลางเดี่ยวสำหรับตัวอักษรและเครื่องหมายขีดกลางคู่สำหรับคำมาจากไหนและทำไมจึงยังคงใช้ต่อไป ตัวอย่างเช่นถ้าฉันพิมพ์ls --helpคุณจะเห็น: -a, --all do not ignore entries starting with . -A, --almost-all do not list implied . and .. --author with -l, print the author of each file -b, --escape print octal escapes for nongraphic characters --block-size=SIZE use SIZE-byte blocks -B, --ignore-backups do not list implied entries ending …

7
ทำไม ls -d ยังแสดงรายการไฟล์และเอกสารอยู่ที่ไหน?
เมื่อระบุls --directory a*ว่าควรแสดงเฉพาะไดเรกทอรีที่ขึ้นต้นด้วยa* แต่มันจะแสดงรายการไฟล์และไดเรกทอรีที่เริ่มต้นด้วย a คำถาม : ที่ฉันอาจพบเอกสารบางอย่างเกี่ยวกับเรื่องนี้อื่น ๆ กว่าmanและinfoที่ผมคิดว่าผมมองอย่างละเอียด? ทำงานใน BASH เท่านั้นหรือไม่
48 bash  shell  ls  wildcards  options 

7
ใช้ `` 'กับซีดีเท่านั้นหรือไม่
cd - สามารถสลับระหว่าง dir ปัจจุบันและ dir ก่อนหน้า มันดูเหมือนว่าผมเคยเห็น-มาใช้เป็นข้อโต้แย้งคำสั่งอื่น ๆ ก่อน แต่ผมจำไม่ได้ว่าถ้าวิธีการเช่นเดียวกับกับ-cd ฉันพบว่าไม่ได้ทำงานกับ-ls คือ- ใช้เฉพาะกับ cd?

2
cp -L กับ cp -H
ปัญหา เมื่อคัดลอกไฟล์ด้วยcp -Hหรือcp -Lฉันได้ผลลัพธ์เดียวกัน: $ ls -l fileA fileA -> fileB $ cp fileA somewhere/ -H $ ls -l somewhere/ fileA # fileA is a copy of fileB, only renamed, with same properties! คำตอบนี้ที่นี่-Rอธิบายตัวเลือกทั้งสองเป็นที่คล้ายกันเว้นแต่ใช้ร่วมกับ ไม่ได้สำหรับฉัน. ซอฟต์ - ไฟล์ฮาร์ดลิงก์จะเปลี่ยนชื่อสำเนาของไฟล์ที่ชี้ไปที่ต้นทาง คำถาม : การใช้ที่เหมาะสมคืออะไรcp -Hและcp -L? นี่เป็นพฤติกรรมที่คาดหวังหรือไม่? ความพยายามที่จะแก้ปัญหาของฉัน : man cpบอกฉันค่อนข้างเหมือนกันสำหรับทั้งสองตัวเลือก แต่info cpของถ้อยคำที่ทำให้เกิดความสับสนมากยิ่งขึ้นสำหรับฉัน …

4
มีไฟล์กำหนดค่า 'rc' สำหรับ grep / egrep หรือไม่ (~ / .egreprc?)
ฉันมักจะทำ grep เมื่อทำการพัฒนาและมีส่วนขยายบางอย่างที่ฉันไม่ต้องการค้นหา (เช่น * .pyc) เป็นไปได้ไหมที่จะสร้าง ~ / .egreprc หรืออะไรทำนองนั้นและทำให้การกรองบางอย่างไม่แสดงผลไฟล์ pyc เสมอ เป็นไปได้หรือฉันจะต้องสร้างนามแฝงสำหรับใช้ grep ในลักษณะนี้และเรียกนามแฝงแทน grep หรือไม่

5
getopt, getopts หรือการแยกวิเคราะห์แบบแมนนวล - จะต้องใช้อะไรเมื่อฉันต้องการสนับสนุนตัวเลือกทั้งระยะสั้นและระยะยาว
ขณะนี้ฉันกำลังเขียนสคริปต์ Bash ซึ่งมีข้อกำหนดดังต่อไปนี้: ควรรันบนแพลตฟอร์ม Unix / Linux ที่หลากหลาย ควรสนับสนุนตัวเลือกทั้งแบบสั้นและยาว (GNU) ฉันรู้ว่าgetoptsจะเป็นวิธีที่ต้องการในแง่ของการพกพา แต่ AFAIK มันไม่สนับสนุนตัวเลือกยาว getoptรองรับตัวเลือกยาว แต่BashGuideแนะนำอย่างยิ่งกับมัน: ห้ามใช้ getopt (1) getopt ไม่สามารถจัดการกับสตริงอาร์กิวเมนต์ว่างเปล่าหรือขัดแย้งกับช่องว่างที่ฝังตัว โปรดลืมว่ามันมีอยู่จริง ดังนั้นยังคงมีตัวเลือกในการแยกวิเคราะห์ด้วยตนเอง นี่เป็นข้อผิดพลาดง่ายสร้างรหัสสำเร็จรูปค่อนข้างมากและฉันต้องจัดการข้อผิดพลาดด้วยตัวเอง (ฉันเดาว่าgetopt(s)จัดการข้อผิดพลาดด้วยตัวเอง) ดังนั้นสิ่งที่จะเป็นตัวเลือกที่ต้องการในกรณีนี้

2
ผลกระทบด้านความปลอดภัยของการเรียกใช้ Perl - '' …
เห็นได้ชัดว่ากำลังทำงาน: perl -n -e 'some perl code' * หรือ find . ... -exec perl -n -e '...' {} + (เช่นเดียวกับ-pแทน-n) หรือ perl -e 'some code using <>' * มักจะพบในหนึ่ง liners โพสต์บนเว็บไซต์นี้มีผลกระทบด้านความปลอดภัย ตกลงคืออะไร? จะหลีกเลี่ยงได้อย่างไร


7
มีวิธีดูเอกสาร `man 'เฉพาะสำหรับตัวเลือกที่ระบุของคำสั่ง
หากฉันต้องการทราบความหมายของwget -bฉันเห็นคู่มือโดยman wgetแล้วค้นหา-bตัวเลือก -b --background Go to background immediately after startup. If no output file is specified via the -o, output is redirected to wget-log. man wget -bฉันต้องการที่จะได้รับผลจากคำสั่งเช่น (แน่นอนว่ามันไม่ได้ผล) มีวิธีที่คล้ายกันเพื่อให้เป็นไปได้หรือไม่
24 man  options 

3
tar cvf หรือ tar -cvf?
ฉันได้เรียนรู้การใช้ tar โดยไม่มี '-' สำหรับตัวเลือกเช่นtar cvfz dir.tar.gz Directory/แต่เมื่อเร็ว ๆ นี้ฉันมีtar -czvfไวยากรณ์แตกต่างกันเล็กน้อย(ฉันคิดว่า 'f' ต้องเป็นตัวเลือกสุดท้ายในกรณีนี้) ทั้งทำงานบน linux และ Mac OS มีไวยากรณ์ที่แนะนำหรือไม่ถ้าไม่มี '-' ซึ่งพกพาสะดวกกว่าในรสชาติ unix หรือไม่?

2
`-` เรียกว่าอะไร?
เมื่อเร็ว ๆ นี้ฉันได้รับรู้--ว่าเป็นยัติภังค์สองเท่าที่ใช้ในการบอกคำสั่งว่ารายการตัวเลือกได้สิ้นสุดลงและสิ่งต่อไปนี้ไม่ควรถือเป็นตัวเลือก ดังนั้น, grep -- 'search_word' * search_wordจะค้นหาที่กำหนด แต่คุณจะได้เห็นพฤติกรรมที่ไม่คาดคิดหากคุณลบ--และหากมีไฟล์เดียวที่เริ่มต้นด้วย-ซึ่งจะเปิดตัวเลือกที่เหมาะสมกับตัวอักษรในชื่อไฟล์ สิ่งนี้--เรียกว่าอะไร? มีศัพท์เทคนิคใด ๆ บ้างไหม?
23 command  options 

3
ความสำคัญของตัวเลือกคำสั่ง?
ฉันรู้ว่าrm -f file1จะลบอย่างแรงfile1โดยไม่แจ้งให้ฉัน ฉันก็รู้ว่าrm -i file1จะแจ้งให้ฉันก่อนที่จะลบfile1 ตอนนี้ถ้าคุณดำเนินการrm -if file1สิ่งนี้จะเป็นการลบอย่างแรงfile1โดยไม่แจ้งให้ฉันทราบ แต่ถ้าคุณดำเนินการก็จะแจ้งให้ผมก่อนที่จะลบrm -fi file1file1 เป็นจริงหรือไม่ที่เมื่อรวมตัวเลือกคำสั่งตัวสุดท้ายจะมีความสำคัญกว่ากัน? เช่นrm -ifนั้น-fจะมีความสำคัญกว่า แต่ rm -fiก็-iจะมีความสำคัญกว่า lsคำสั่งเช่นมันไม่สำคัญว่าถ้าคุณบอกว่าหรือls -latRls -Rtal ดังนั้นฉันคิดว่ามันสำคัญเฉพาะเมื่อคุณมีตัวเลือกคำสั่งที่ขัดแย้งเช่นrm -ifนั้นถูกต้องหรือไม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.