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

Globbing หมายถึงการจับคู่ไฟล์ตามรูปแบบชื่อที่มีอักขระตัวแทน

4
ซิปไฟล์ทั้งหมดในไดเรกทอรีหรือไม่
มีวิธีซิปไฟล์ทั้งหมดในไดเรกทอรีที่กำหนดด้วยzipคำสั่งหรือไม่? ฉันเคยได้ยินเรื่องการใช้*.*งาน แต่ฉันต้องการให้มันทำงานกับไฟล์ที่ไม่มีนามสกุลได้เช่นกัน

3
วิธีใช้ไวด์การ์ด (*) เมื่อทำการคัดลอกด้วย scp?
เหตุใดฉันจึงไม่สามารถคัดลอกด้วย scp เมื่อฉันใช้*อักขระในเส้นทางได้ scp SERVERNAME:/DIR/* . SCP ต้องการรูปแบบใดเพื่อให้อนุญาต*ในเส้นทาง UPDATE: ปัญหาไม่ได้อยู่ที่ฝั่งเซิร์ฟเวอร์ pscp พยายามใช้งาน SCPv1 และนั่นคือสาเหตุที่ข้อความแสดงข้อผิดพลาด:
144 wildcards  scp  putty 

11
คุณจะย้ายไฟล์ทั้งหมด (รวมถึงที่ซ่อนอยู่) จากไดเรกทอรีหนึ่งไปยังอีกไดเรกทอรีหนึ่งได้อย่างไร?
ฉันจะย้ายไฟล์ทั้งหมดในไดเรกทอรี (รวมถึงไฟล์ที่ซ่อนอยู่) ไปยังไดเรกทอรีอื่นได้อย่างไร ตัวอย่างเช่นหากฉันมีโฟลเดอร์ "Foo" ที่มีไฟล์ ".hidden" และ "notHidden" อยู่ภายในฉันจะย้ายไฟล์ทั้งสองไปยังไดเรกทอรีที่ชื่อ "Bar" ได้อย่างไร ข้อมูลต่อไปนี้ใช้ไม่ได้เนื่องจากไฟล์ ".hidden" ยังคงอยู่ใน "Foo" mv Foo/* Bar/ ลองด้วยตัวคุณเอง mkdir Foo mkdir Bar touch Foo/.hidden touch Foo/notHidden mv Foo/* Bar/
132 shell  wildcards  dot-files  mv 

8
ตัวกรอง Rsync: คัดลอกหนึ่งรูปแบบเท่านั้น
ฉันกำลังพยายามสร้างไดเรกทอรีที่จะเก็บไฟล์ PDF ทั้งหมดของฉันและรวบรวมจาก LaTeX LaTeXผมชอบการรักษาแต่ละโครงการในโฟลเดอร์ที่แยกต่างหากทั้งหมดตั้งอยู่ในโฟลเดอร์ขนาดใหญ่ที่เรียกว่า ดังนั้นฉันจึงพยายามวิ่ง: rsync -avn *.pdf ~/LaTeX/ ~/Output/ ซึ่งควรหาไฟล์ pdf ทั้งหมด~/LaTeX/และโอนไปยังโฟลเดอร์ผลลัพธ์ มันใช้งานไม่ได้ มันบอกฉันว่ามันไม่ตรงกับ " *.pdf" หากฉันไม่ใช้ตัวกรองนี้คำสั่งจะแสดงรายการไฟล์ทั้งหมดในโฟลเดอร์โครงการทั้งหมดภายใต้ LaTeX ดังนั้นจึงเป็นปัญหากับตัวกรอง * .pdf ฉันพยายามแทนที่~/ด้วยพา ธ เต็มไปยังโฮมไดเร็กตอรี่ของฉัน, แต่นั่นไม่มีผลอะไรเลย. ฉันกำลังใช้ zsh ฉันพยายามทำสิ่งเดียวกันด้วยการทุบตีและแม้จะมีตัวกรองที่ระบุทุกไฟล์เดียวในทุกไดเรกทอรีย่อย ... เกิดอะไรขึ้นที่นี่? เหตุใด rsync จึงไม่เข้าใจตัวกรอง PDF ของฉันเท่านั้น ตกลง. ดังนั้นอัปเดต: ไม่ฉันพยายาม rsync -avn --include="*/" --include="*.pdf" LaTeX/ Output/ และนี่ทำให้ฉันมีรายชื่อไฟล์ทั้งหมด ฉันเดาเพราะทุกอย่างตรงกับรูปแบบแรก ...
128 backup  rsync  wildcards 

8
แสดงรายการไฟล์ปกติเท่านั้น (แต่ไม่ใช่ไดเรกทอรี) ในไดเรกทอรีปัจจุบัน
ฉันสามารถใช้ls -ld */เพื่อแสดงรายการไดเรกทอรีทั้งหมดในไดเรกทอรีปัจจุบัน มีวิธีที่ง่ายเหมือนกันเพียงแค่แสดงรายการไฟล์ปกติทั้งหมดในไดเรกทอรีปัจจุบันหรือไม่? ฉันรู้ว่าฉันสามารถใช้การค้นหา find . -maxdepth 1 -type f หรือสถิติ stat -c "%F %n" * | grep "regular file" | cut -d' ' -f 3- แต่สิ่งเหล่านี้ไม่ได้ทำให้ฉันรู้สึกว่าสง่างามเกินไป มีวิธีสั้น ๆ ที่ดีในการแสดงเฉพาะไฟล์ปกติ (ฉันไม่สนใจเกี่ยวกับอุปกรณ์ท่อ ฯลฯ ) แต่ไม่ใช่ไดเรกทอรีย่อยของไดเรกทอรีปัจจุบันหรือไม่? รายชื่อลิงก์สัญลักษณ์เช่นกันจะเป็นข้อดี แต่ก็ไม่จำเป็น
126 shell  files  ls  wildcards 

7
ผลลัพธ์ของ ls *, ls ** และ ls ***
ฉันรู้ว่าการใช้คำสั่งlsจะแสดงรายการไดเรกทอรีทั้งหมด แต่ls *คำสั่งทำอะไร ฉันใช้มันและมันก็จะแสดงรายการไดเรกทอรี ดาวอยู่ข้างหน้าlsหมายความว่าจะสามารถแสดงรายการไดเรคทอรีได้ลึกแค่ไหน

9
rm -rf ไฟล์ทั้งหมดและไฟล์ที่ซ่อนอยู่ทั้งหมดโดยไม่ต้อง & .. ข้อผิดพลาด
rm -rf /some/path/* ลบไฟล์ที่ไม่ถูกซ่อนทั้งหมดใน dir (และส่วนย่อย) rm -rf /some/path/.* ลบไฟล์ที่ซ่อนอยู่ทั้งหมดใน dir นั้น (แต่ไม่ใช่ subdirs) และยังให้ข้อผิดพลาด / คำเตือนต่อไปนี้: rm: cannot remove directory: `/some/dir/.' rm: cannot remove directory: `/some/dir/..' เป็นวิธีที่เหมาะสมในการลบไฟล์และโฟลเดอร์ที่ซ่อนอยู่และไม่ได้ซ่อนอยู่ในไดเรกทอรีเป้าหมายซ้ำโดยไม่ได้รับคำเตือน / ข้อผิดพลาดเกี่ยวกับ.และ..คืออะไร?
82 wildcards  rm 

3
วนซ้ำแบบซ้ำ
ฉันต้องการเขียนสิ่งนี้: $ ls **.py เพื่อให้ได้ชื่อไฟล์. py ทั้งหมดให้เดินลำดับชั้นไดเรกทอรีซ้ำ แม้ว่าจะมีไฟล์. py ที่ต้องการค้นหาเชลล์ (bash) จะให้เอาต์พุตนี้: ls: cannot access **.py: No such file or directory มีวิธีใดที่จะทำสิ่งที่ฉันต้องการ แก้ไข:ฉันต้องการระบุว่าฉันไม่สนใจเฉพาะกรณีlsแต่คำถามเกี่ยวกับไวยากรณ์ glob

1
ทำไมนิพจน์ปกติของฉันทำงานใน X แต่ไม่ใช่ใน Y
ฉันเขียนนิพจน์ปกติซึ่งทำงานได้ดีในบางโปรแกรม (grep, sed, awk, perl, python, ruby, ksh, bash, zsh, หา, emacs, vi, vim, gedit, …) แต่เมื่อฉันใช้มันในโปรแกรมอื่น (หรือตัวแปร unix ที่แตกต่างกัน) มันหยุดจับคู่ ทำไม?

2
ฉันจะกำหนดเอาต์พุตของคำสั่งให้กับตัวแปร shell ได้อย่างไร?
ฉันต้องการกำหนดผลลัพธ์ของนิพจน์ให้กับตัวแปรและเชื่อมโยงกับสตริงแล้วสะท้อนกลับ นี่คือสิ่งที่ฉันได้รับ: #!/bin/bash cd ~/Desktop; thefile= ls -t -U | grep -m 1 "Screen Shot"; echo "Most recent screenshot is: "$thefile; แต่ผลลัพธ์นั้น: Screen Shot 2011-07-03 at 1.55.43 PM.png Most recent screenshot is: ดังนั้นดูเหมือนว่าจะไม่ได้รับมอบหมาย$thefileและกำลังถูกพิมพ์ขณะดำเนินการ


3
ทำไมการค้นหาของฉันจึงไม่เกิดซ้ำ
ฉันใช้คำสั่งต่อไปนี้ แต่ไม่ได้เรียกซ้ำ: find . -name *.java ฉันรู้ว่ามีไฟล์ java อยู่ข้างล่างในไดเรกทอรีปัจจุบัน แต่กำลังทำงานfindในไดเรกทอรีปัจจุบันเท่านั้น ฉันใช้ OS X, 10.9
65 shell  find  wildcards 

1
ทำไม nullglob ไม่ผิดนัด?
ในหอยส่วนใหญ่nullglobไม่ได้เป็นค่าเริ่มต้น ตัวอย่างเช่นถ้าคุณใช้คำสั่งนี้ ls * ในไดเรกทอรีว่างมันจะขยาย*glob ไปตามตัวอักษร*แทนที่จะเป็นรายการอาร์กิวเมนต์ว่าง มีวิธีในการเปลี่ยนพฤติกรรมดังกล่าวดังนั้น*ในไดเรกทอรีว่างจะส่งคืนรายการอาร์กิวเมนต์ว่างซึ่งจะดูง่ายขึ้น ดังนั้นมีเหตุผลทำไมnullglobถูกปิดใช้งานโดยค่าเริ่มต้น? ถ้าเป็นเช่นนั้นเหตุผลอะไร
61 shell  wildcards 

5
เหตุใดอักขระ wild card * จึงแตกต่างกันระหว่างคำสั่ง zip และ rm
ฉันรวบรวมสคริปต์เพื่อดำเนินการบางอย่างกับฉัน ฉันใช้โอเปอเรเตอร์การ์ด*เพื่อใช้ฟังก์ชั่นกับไฟล์ทุกประเภท แต่มีสิ่งหนึ่งที่ฉันไม่ได้รับ ฉันสามารถunzipไฟล์ทั้งหมดในโฟลเดอร์เช่นนี้ unzip "*".zip อย่างไรก็ตามในการลบไฟล์ zip ทั้งหมดหลังจากนั้นฉันต้องทำ rm *.zip นั่นคือมันไม่ต้องการเครื่องหมายคำพูด unzip ในทางกลับกันไม่สามารถใช้งานได้หากฉันให้ * (ให้คำเตือนว่า "ไฟล์ไม่ตรงกัน") ทำไมถึงแตกต่างกัน? สำหรับฉันดูเหมือนว่าการดำเนินการเดียวกันแน่นอน หรือฉันใช้การ์ดไวด์ไม่ถูกต้อง? การแนะนำให้รู้จักกับไวด์การ์ดใน Unix นั้นไม่ได้ทำสิ่งนี้จริงๆและฉันไม่สามารถหาตำแหน่งใด ๆ ในเอกสารrmหรือzip ฉันใช้เทอร์มินัลกับ Mac (Yosemite)
58 shell  wildcards  rm  zip 

7
วิธีจับคู่รูปแบบที่ไม่สนใจตัวพิมพ์เล็กกับ ls
ฉันต้องการแสดงรายการไฟล์ทั้งหมดที่ตรงกับรูปแบบที่กำหนดโดยไม่สนใจเคส ตัวอย่างเช่นฉันรันคำสั่งต่อไปนี้: ls *abc* ฉันต้องการดูไฟล์ทั้งหมดที่มี "abc" เป็นส่วนหนึ่งของชื่อไฟล์โดยไม่สนใจขนาดตัวพิมพ์ -rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file1abc.txt -rw-r--r-- 1 mtk mtk 0 Sep 21 08:12 file2ABC.txt บันทึก ฉันได้ค้นหาหน้าคนสำหรับกรณี แต่ไม่พบอะไรเลย

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