ฉันพยายามที่จะโยกย้ายจากไปbash
fish
คืออะไรfish
's อนาล็อกเพื่อshopt
? ฉันพยายามเลียนแบบบรรทัดนี้จาก.bashrc
:
shopt -s dotglob # for mv * see hidden files
ฉันพยายามที่จะโยกย้ายจากไปbash
fish
คืออะไรfish
's อนาล็อกเพื่อshopt
? ฉันพยายามเลียนแบบบรรทัดนี้จาก.bashrc
:
shopt -s dotglob # for mv * see hidden files
คำตอบ:
นี่คือเจตนา เวลาส่วนใหญ่ที่ผู้ใช้ไม่ต้องการจับคู่ไฟล์ที่ซ่อนซึ่งไม่สามารถมองเห็นได้ls
โดยไม่-a
ตั้งใจ โดยปกติไฟล์จะถูกซ่อนไว้ด้วยเหตุผลไม่ใช่เพื่อหมุนรอบคุณ นอกจากนี้หาก*
จับคู่ไฟล์ที่ซ่อนอยู่การจับคู่ไฟล์ที่ไม่ได้ซ่อนไว้นั้นจะยุ่งยากเกินไป
อย่างไรก็ตามshopt -s dotglob
ไม่จำเป็นต้องใช้bash ซึ่งแตกต่างจากไฟล์ที่ถูกซ่อน ในทุบตีshopt -s dotglob
เป็นวิธีเดียวของการจับคู่ไฟล์ในไดเรกทอรีทุกโดยไม่ตั้งใจจับคู่หรือ.
..
อย่างไรก็ตามเปลือกปลาไม่สามารถจับคู่.
หรือ..
กลมกลืนได้ดังนั้นจึงไม่ใช่ปัญหา (หากคุณต้องการจับคู่อย่างจริงจัง.
หรือ..
ด้วยเหตุผลโง่ ๆ เพียงพูดอย่างชัดเจน) dotglob
นอกจากนี้ปลาพยายามที่จะหลีกเลี่ยงตัวเลือกโดยการออกแบบเพื่อให้มันไม่ได้มี
เพื่อให้ตรงกับไฟล์ทุกไฟล์ในไดเรกทอรีคุณอาจต้องการใช้ส่วนขยายของวงเล็บเพื่อตรวจจับไฟล์ที่ขึ้นต้นด้วยจุดและไฟล์ที่ไม่ใช่ {.,}
เป็นการขยายส่วนรองรับซึ่งตรงกับจุดที่อาจมีหรือไม่มีอยู่ ดาวหลังจากที่มันจับคู่ทุกอย่าง เนื่องจาก globs ในปลาไม่สามารถจับคู่.
หรือ..
รหัสต่อไปนี้ตรงกับทุกสิ่งยกเว้นทั้งสองไดเรกทอรี (ซึ่งทุบตีน่าเศร้าตรงถ้าคุณใช้รหัสด้านล่าง)
cat {.,}*
{,.}*
ตนเอง