ถือว่าเป็นแนวปฏิบัติที่ดีที่สุดที่จะไม่ใช้อักษรตัวใหญ่ในการตั้งชื่อไฟล์หรือไม่?


28

มีคนบอกว่าคุณไม่ควรใช้ช่องว่างในการตั้งชื่อไฟล์ Unix มีเหตุผลที่ดีที่จะไม่ใช้อักษรตัวพิมพ์ใหญ่ในชื่อไฟล์ (เช่นFile_Name.txtvs. file_name.txt) หรือนี่เป็นเพียงเรื่องของการตั้งค่าส่วนตัว?


คุณสามารถใช้ตัวพิมพ์ใหญ่ได้ แต่เนื่องจากมาตรฐานไม่ได้ใช้ เพียงใช้อักษรตัวเล็กและ _ ดังนั้น file_name.txt ก็ดี
Shabir A.

9
มีบางสิ่งที่ Unixy ที่ใช้ชื่อไฟล์ด้วยตัวอักษรพิมพ์ใหญ่คือ ... ตัวอย่างบางตัวอย่างเช่น Makefile, INSTALL, CHANGELOG และแน่นอน README ที่น่านับถือ
โทมัส

PSR-2 - มาตรฐานการตั้งชื่อตามข้อเท็จจริงของโลก PHP ซึ่งดำเนินการโดยคนส่วนใหญ่บน Linux ใช้ camelCase php-fig.org/psr/psr-2
jdog

คำตอบ:


46

มีคนบอกว่าคุณไม่ควรเว้นวรรคในการตั้งชื่อไฟล์ Unix

ผู้คนพูดหลายสิ่งหลายอย่าง มีเครื่องมือบางอย่างที่อาจทำให้ล้มเหลว แต่หวังว่าพวกเขาจะมีจำนวนไม่มาก ณ จุดนี้เนื่องจากช่องว่างนั้นเป็นไวรัสที่แพร่กระจายโดย บริษัท ยักษ์ใหญ่ของผู้บริโภคที่เป็นเจ้าของระบบปฏิบัติการและตอนนี้เป็นไปไม่ได้ที่จะหลีกเลี่ยง

ช่องว่างทำให้การระบุชื่อไฟล์ในบรรทัดคำสั่ง ฯลฯ ที่น่าอึดอัดใจ เกี่ยวกับมัน. อักขระที่ห้ามใช้อย่างเด็ดขาดในระบบ * nix คือ NUL (ไม่ต้องกังวลไม่ได้อยู่บนแป้นพิมพ์ของคุณหรือบุคคลอื่น) และ/เนื่องจากเป็นตัวแยกพา ธ 1 นอกจากสิ่งอื่น ๆ องค์ประกอบพา ธ ส่วนบุคคล (ชื่อไฟล์) ถูก จำกัด ไว้ที่ 255 ไบต์ (อาจเกิดความยุ่งยากหากคุณใช้ชุดอักขระแบบขยาย) และพา ธ ที่สมบูรณ์ถึง 4 KiB

หรือนี่เป็นเพียงเรื่องของการตั้งค่าส่วนตัว

ฉันจะบอกว่ามันเป็น ของ DE ส่วนใหญ่ดูเหมือนจะสร้างการฆ่าของไดเรกทอรีทุนในของคุณ$HOME( Downloads, Desktop, Documents- The Dเป็นที่นิยมมาก) จึงไม่มีอะไรแปลกประหลาดเกี่ยวกับมัน นอกจากนี้ยังมีไฟล์แบบดั้งเดิมเป็นเรื่องธรรมดามากกับเมืองหลวงในพวกเขาเช่นและ.Xclients.Xauthority

คุณค่าของการใช้ประโยชน์จากสิ่งต่าง ๆ ที่จุดเริ่มต้นคือเมื่อมีการระบุรายการในพจนานุกรมศัพท์พวกเขาจะมาก่อนสิ่งเล็ก ๆ น้อย ๆ - อย่างน้อยมีเครื่องมือมากมายและขึ้นอยู่กับสถานที่

ฉันเป็นแฟนของกรณีอูฐ (aka. camelCase) และใช้กับชื่อไฟล์เช่น/home/goldilocks/blueSuedeShoes- ไม่ต้องสนใจสิ่งที่อยู่ในนั้น เป็นเรื่องของความชอบส่วนตัวอย่างแน่นอน แต่มันก็ยังทำให้ฉันเศร้าใจ

ไฟล์คลาส Java มักจะมีตัวพิมพ์ใหญ่โดยธรรมชาติเพราะชื่อคลาส Java ทำ และแน่นอนว่าอย่าลืมNetworkManagerแม้ว่าเราบางคนจะชอบ


1. มีตัวคั่นเพิ่มเติมที่แนะนำโดย POSIX "ชุดอักขระชื่อไฟล์แบบพกพา"ที่ไม่มีพื้นที่ - แต่รวมถึงตัวพิมพ์ใหญ่! POSIXยังระบุข้อ จำกัด ทั่วไปเพิ่มเติมเกี่ยวกับ "ตัวอักษรเฉือนและไบต์โมฆะ" ที่อื่น ๆ ในเอกสารเดียวกัน นี้สะท้อนให้เห็นหรือจะสะท้อนให้เห็นในยืนเป็นเวลานานการปฏิบัติทั่วไป


5
Mia: "นั่นเป็นเรื่องจริงเหรอ?" Vincent: "ไม่ไม่ใช่มันเป็นแค่สิ่งที่ฉันได้ยิน" Mia: "ใครบอกเรื่องนี้กับคุณ" Vincent: "พวกเขา" Mia: "พวกเขาคุยกันบ่อยมากใช่ไหม?" Vincent: "พวกเขาทำอย่างแน่นอน"
corsiKa

4
“ความคุ้มค่าของการพะวงบางสิ่งบางอย่างที่จุดเริ่มต้นก็คือว่าเมื่อจดทะเบียน lexicographically [ ... ], พวกเขาจะมาก่อนที่ทุกอย่างอื่น.” - ของหลักสูตรนี้ทำงานได้เฉพาะในกรณีที่มากที่สุดของชื่อไฟล์ที่มีตัวพิมพ์เล็กให้คุณมีเหตุผลไปสำรองหมวก ( อย่างน้อยชั้นนำหมวก) สำหรับคุณREADMEและMakefileและอื่น ๆ
แบล็กไลท์ส่องแสง

4
ในหลาย ๆ คีย์บอร์ด ctrl-space หรือ ctrl- @ หรือ alt-0 จะพิมพ์ NUL
dubiousjim

2
@dodgethesteamroller ฉันเชื่อว่าคุณไม่เข้าใจผิดเกี่ยวกับเครื่องหมายทับ (หรือแม่นยำยิ่งขึ้นไบต์ที่มีค่า 0x2F) ใน ext * ที่จริงแล้วฉันไม่เชื่อว่ามันจะไปถึงระบบไฟล์ เลเยอร์ VFS จะไม่อนุญาตโดยไม่คำนึงถึงที่เก็บข้อมูลสำรอง
zwol

3
อย่าใช้ช่องว่างในชื่อไฟล์และชื่อไดเรกทอรี แม้ว่าระบบของคุณอนุญาตให้ใช้ในทางเทคนิคแล้วมันจะทำให้เกิดความเศร้าโศกของคุณเท่านั้น ใช้อักขระ "ขีด" แทนเครื่องหมายขีดล่างแทน
SnakeDoc

9

เหตุผลหนึ่งที่ต้องหลีกเลี่ยงตัวพิมพ์ใหญ่ในชื่อไฟล์คือลำดับการเรียงใน Unix นั้นคำนึงถึงตัวพิมพ์ใหญ่และตัวพิมพ์เล็กดังนั้นไฟล์ที่ขึ้นต้นด้วยตัวพิมพ์ใหญ่จะไม่ปรากฏ นั่นเป็นเหตุผลว่าทำไมMakefileมักจะตั้งชื่อโดยใช้ทุนM- มันเป็นหนึ่งในไฟล์ที่คุณต้องการที่จะเห็นเป็นครั้งแรกโดยไม่ต้องเลื่อน / a-lข้ามรางลง

สิ่งนี้กล่าวว่าคุณสามารถทำได้แย่กว่ามากในแง่ของชื่อไฟล์:

  • การใช้ช่องว่างจะทำให้โปรแกรมและสคริปต์ที่เขียนไม่ดีบางตัวซึ่งไม่อ้างชื่อไฟล์อย่างถูกต้อง
  • การเริ่มต้นชื่อไฟล์ด้วย a -อาจทำให้เกิดปัญหาได้หลายโปรแกรมจะเห็นว่าเป็นตัวเลือกบรรทัดคำสั่งแทนที่จะเป็นชื่อไฟล์ (เช่นrm -rจะไม่ลบไฟล์ที่มีชื่อ-r)
  • การเริ่มต้นชื่อไฟล์ด้วย a .จะซ่อนมันจากยูทิลิตี้มากมายและเชลล์ globbing (เช่นrm *จะไม่ลบไฟล์เช่น.config)
  • การใช้อักขระพิเศษเช่น|<>*?และแม้กระทั่งอักขระที่ไม่สามารถพิมพ์ได้เช่นnewlineเป็นไปได้ทางเทคนิค แต่อาจแบ่งสคริปต์ / โปรแกรมที่คล้ายกับอักขระช่องว่าง ความแตกต่างก็คือมักใช้อักขระช่องว่างดังนั้นโปรแกรมเมอร์จึงมักทดสอบโปรแกรมของตนกับมันในขณะที่ตัวละครที่ได้รับความนิยมน้อยมักจะไม่ถูกทดสอบ

4
สิ่งนี้มีแนวโน้มที่จะไม่เป็นจริงอีกต่อไปการเรียงลำดับในโลแคลที่ทันสมัยมีแนวโน้มที่จะไม่คำนึงถึงขนาดตัวพิมพ์ในปัจจุบันและเครื่องมือและเชลล์จำนวนมากทำให้ทราบถึงโลแคลสำหรับการเรียงชื่อไฟล์
Stéphane Chazelas

2
คุณหมายถึงพูดว่า: rm *จะไม่ลบไฟล์เช่น.config?
Wildcard

1
@ Wildcard ไม่จริง แต่ตัวอย่างของคุณอาจสมจริงกว่าของฉัน ประเด็นของฉันคือแสดงให้เห็นว่าชื่อไฟล์ที่ขึ้นต้นด้วยจุดนั้นมีภูมิคุ้มกันต่อการทำให้กลมกลืนแม้ว่าผู้ใช้จะระบุจุดนั้นอย่างชัดเจน
Dmitry Grigoryev

1
@DmitryGrigoryev ไม่มีพวกเขาไม่ใช่ ลอง ls -ald. ?? * ในไดเรกทอรีใด ๆ ที่มีไฟล์ dot
Bill Barth

1
ฉันเชื่อว่ามันจะเหมาะสมกว่าถ้าจะพูดว่า "ถ้าคุณเลือกที่จะใช้อักษรตัวใหญ่ในชื่อไฟล์คุณควรคำนึงถึงความจริงที่ว่าคำสั่งการเรียงลำดับใน Unix เป็นตัวพิมพ์เล็กหรือตัวพิมพ์ใหญ่" ผู้ใช้อาจต้องการพฤติกรรมนี้MakefileและREADMEเป็นตัวอย่างที่สมบูรณ์แบบ โปรดทราบว่าเอฟเฟ็กต์นี้จะไม่สำคัญหากตัวอักษรไม่ใช่ตัวอักษรตัวแรกในชื่อดังนั้นจึงไม่ใช่เรื่องใหญ่หากคุณใช้ camelCase แน่นอนว่าคุณอาจแปลกใจที่เห็นanOctagonก่อนหน้าangleนี้ แต่อย่างน้อยพวกเขาจะอยู่ด้วยกันในรายชื่อ
G-Man กล่าวว่า 'Reinstate Monica'

6

หากคุณกำลังจะเชื่อมต่อกับสภาพแวดล้อมของ Windows คุณควรหลีกเลี่ยงตัวพิมพ์ใหญ่เนื่องจาก Windows จะลดทุกอย่างลง นี่เป็นปัญหาที่เกิดขึ้นบ่อยกว่า ลิงก์ที่Page_2.htmlจะค้นหาpage_2.htmlใน Windows แต่จะล้มเหลวใน Unix


10
ที่ไม่เป็นความจริง. NTFS, VFAT และ exFAT นั้นเป็นแบบตัวพิมพ์เล็กและตัวพิมพ์เล็ก แต่ก็เก็บไว้ในตัวเครื่องซึ่งหมายความว่ามันจะไม่สนใจขนาดตัวพิมพ์เพื่อจุดประสงค์ในการค้นหา แต่จะเก็บขนาดตัวพิมพ์ เช่นเดียวกับ HFS ​​+ ซึ่งเป็นระบบไฟล์เริ่มต้นบน OSX NTFS ยังมี namespace POSIX ซึ่งทำงานตรงเช่น Unices อื่น ๆ ทั้งหมดคือนานมากชื่อไฟล์ของ octets ยกเลิกการตีความมีเพียงNULและ/สิ่งต้องห้าม
Jörg W Mittag

5
อีกประเด็น "case-insensitive แต่ case-treating" เป็นอีกวิธีหนึ่งในการพูดว่า "ความสามารถในการเขียนทับไฟล์ A อย่างเงียบ ๆ เนื่องจากชื่อของมันแตกต่างกันในกรณีจากไฟล์ B" (หรือกลับกันขึ้นอยู่กับว่าถูกบันทึกไว้ในภายหลัง) ในคำอื่น ๆ หากคุณกำลังใช้เปลือกระวัง * การเข้าถึงหุ้น NTFS, จะเขียนทับไฟล์cat > Foo fooลักษณะการทำงานนี้มีแนวโน้มที่จะไม่คาดคิดและสร้างความสับสนหากคุณใช้ในการรักษาตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ - เล็กเช่น ext *
dodgethesteamroller

1
@ JörgWMittagเว้นแต่ว่าฉันเข้าใจผิด NTFS นั้นไม่ตรงตามตัวพิมพ์ใหญ่ - เล็ก แต่เป็นเพียงหน้าต่างที่ทำงานในรูปแบบลึกลับ
คธูลู

1
@Cthulhu: AFAIK, NTFS มีเนมสเปซสี่แบบที่แตกต่างกันซึ่งคุณสามารถสร้างชื่อสำหรับไฟล์ได้ (ฉันไม่รู้ว่าไฟล์เดียวสามารถมีชื่อในเนมสเปซมากกว่าหนึ่งอันได้หรือไม่) เนมสเปซ "DOS" (8.3, ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่), เนมสเปซ "ยาว" (case-insensitive, case-case UTF-16) เนมสเปซพิเศษสำหรับชื่อ "short long" คือชื่อที่ควรเก็บรักษา case แต่พอดีกับ 8.3 และเนมสเปซ POSIX (สตรีมของ octets อื่นที่ไม่ใช่\0และคำนึงถึงขนาดตัว/พิมพ์) อย่างน้อยนั่นก็เป็นวิธีที่ฉันจำได้ แต่ฉันเห็นด้วยว่ามันเป็นเรื่องที่ยุ่งเหยิง มีข้อ จำกัด เพิ่มเติมใน ...
Jörg W Mittag

1
…เคอร์เนลและข้อ จำกัด เพิ่มเติมใน API (อันที่จริงมี API ที่แตกต่างจากยุคต่าง ๆ ที่มีข้อ จำกัด ต่างกัน) มีข้อ จำกัด เนื่องจากความเข้ากันได้กับ DOS และ FAT มีข้อ จำกัด ในตัวแปลคำสั่งมีข้อ จำกัด ใน ( กราฟิก) เชลล์และมีข้อ จำกัด ใน Explorer และบ่อยครั้งที่เป็นไปไม่ได้ที่จะตัดสินว่าข้อ จำกัด มาจากไหน มันบ้าไปแล้ว ฉันเคยสร้างไฟล์โดยใช้ Explorerซึ่งไม่สามารถเปิดคัดลอกย้ายเปลี่ยนชื่อหรือลบโดยใช้เครื่องมือใด ๆ ที่ฉันพยายาม โดยทั่วไปแล้วจะอยู่ที่…
Jörg W Mittag

4

เหตุผลหนึ่งที่หลีกเลี่ยงตัวพิมพ์ใหญ่คือbashtabcompletion นั้นคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่(อย่างน้อยก็เป็นค่าเริ่มต้น) - มันยังทำให้ฉันเดินทางทุกครั้งที่ฉันจบbashด้วยการตั้งค่าเริ่มต้น แน่นอนว่ามีเชลล์ยอดนิยมอื่น ๆ แต่สิ่งนี้รวมกับความจริงที่ว่าbashเชลล์การเข้าสู่ระบบเริ่มต้นในหลาย ๆ OS หมายความว่าค่าเริ่มต้นนั้นมักจะเสร็จสิ้นทุกกรณี การใช้ชื่อไฟล์ตัวพิมพ์เล็กทั้งหมดจะทำให้สิ่งต่าง ๆ ง่ายขึ้น


2
echo set completion-ignore-case On >> ~/.inputrcสามารถช่วยเล็กน้อยอย่างน้อยในระบบของคุณเอง
wchargin

1
ฉันไม่ชัดเจนว่าคำตอบของประเด็นนี้คืออะไร - เว้นแต่ว่าคุณอาจจะลืมว่าคุณสะกดชื่อไฟล์อย่างไร ตัวอย่างเช่นหากคุณสร้างไฟล์ชื่อFooและพิมพ์ในภายหลังcat f(Tab) ไฟล์นั้นจะล้มเหลว แต่สิ่งเดียวกันที่เกิดขึ้นถ้าคุณพิมพ์cat foo, cat Foobarหรือcat Fu- ความจริงที่ว่าคุณจะมีปัญหาในการเข้าถึงไฟล์ที่มีชื่อที่คุณจำไม่ได้อย่างถูกต้องไม่ได้จริงๆมีอะไรจะทำอย่างไรกับการเติมข้อความอัตโนมัติ
G-Man กล่าวว่า 'Reinstate Monica'

@ G-Man Touché ถึงกระนั้นการใช้ชื่อไฟล์ที่เป็นตัวพิมพ์เล็กทั้งหมดหมายความว่าคุณมีสิ่งที่ต้องจำได้น้อยกว่า
Blacklight Shining

3

เนื่องจาก NL_Derek เปิดเวิร์มกระป๋องนี้ แต่ไม่ได้ประกบอย่างถูกต้องฉันจะพูดแบบนี้:

มันตกลงที่จะใช้ตัวอักษรทุน แต่คุณควรหลีกเลี่ยงการสร้างไฟล์ (ในไดเรกทอรีเดียวกัน) ที่แตกต่างเท่านั้นโดยกรณีเช่นFile_Name.txt และ file_name.txtเพราะ

  • หากคุณทำให้ไดเรกทอรีพร้อมใช้งานกับระบบ Windows อย่างใดไดเรกทอรีนั้นจะไม่สามารถเข้าถึงไฟล์ทั้งสองได้ มันอาจจะสามารถเข้าถึงได้เฉพาะหนึ่งที่ปรากฏขึ้นครั้งแรกในไดเรกทอรีโดยไม่คำนึงถึงชื่อที่คุณใช้ (ยกเว้น: มันอาจทำให้คุณสามารถเข้าถึงพวกเขาเป็นFILENA~1.TXTและFILENA~2.TXT - dir /xเพื่อดูว่าชื่อสั้น ๆ (ถ้ามี) ไปกับชื่ออะไรยาว ๆ )
  • หากระบบไฟล์เป็นระบบไฟล์ Windows จริงๆ (เช่นติดตั้งจากระบบไฟล์ exFAT หรือ NTFS จากเซิร์ฟเวอร์ NFS ที่ใช้ Windows) ชื่อทั้งสองจะไม่ได้รับอนุญาตให้อยู่ร่วมกัน ตัวอย่างเช่นถ้าคุณทำ และคุณอาจจบลงด้วยไฟล์เดียวที่มีเอาท์พุทจากcmd1 > foocmd2 > Foocmd2
  • ในทำนองเดียวกันถ้าคุณเคยถ่ายโอนไฟล์ไปยังระบบ Windows ทั้งสองชื่อจะ (อาจ) ไม่ได้รับอนุญาตให้อยู่ร่วมกัน ตัวอย่างเช่นถ้าคุณสร้างไฟล์เก็บถาวร (เช่น zip) ที่มีไฟล์สองไฟล์และแตกไฟล์ในระบบ Windows ไฟล์ที่สองอาจจะเขียนทับไฟล์แรก สิ่งเดียวกันถ้าคุณถ่ายโอนไปยังกล่อง Windows ด้วย FTP หรือสิ่งที่คล้ายกัน

ไม่เพียง แต่ Windows เท่านั้น แต่ยังมี OS อื่น ๆ อีกหลายแห่ง (VMS ฉันคิดว่า CP / M แน่นอนว่าคนอื่น ๆ ... )
Toby Speight

3

นอกเหนือจากเหตุผลทางเทคนิคแล้วฉันมีแง่มุมที่สามารถนำไปใช้ได้จริง การใช้ตัวอักษรตัวพิมพ์เล็กจะทำให้มั่นใจได้ว่าการค้นหาจะง่ายขึ้นหากไม่มีใครชอบใช้ grep -i หรือหา -i บางครั้งแม้แต่ camelCase อาจสร้างความสับสนได้หากต้องใช้สตริงของคำที่เป็นกรณีเช่นเดียวกับใน storageNYCDCPrimary ดังนั้นฉันคิดว่ามันดีที่สุดที่จะติดกับตัวพิมพ์เล็กและพริกไทยด้วยขีดล่างหรือเครื่องหมายขีดกลางเพื่อให้อ่านง่ายเช่น storage_nyc_dc_primary


snake_case นั้นง่ายต่อสายตา - storageNycDcPrimaryและStorageNycDcPrimaryทั้งคู่ก็แปลกที่จะอ่าน
go2null

1

ฉันจะพิจารณามันเป็นวิธีที่ดีที่สุดที่จะหลีกเลี่ยงการใช้ตัวพิมพ์ใหญ่และช่องว่างในชื่อไฟล์

บางคนจะบอกว่าพวกเขาไม่เห็นด้วย แต่มันเป็นเรื่องหรือสิ่งที่ฉันเรียกว่าความเชื่อทางศาสนา : ยากที่จะพูดคุยและตกลง ผู้ที่ไม่เห็นด้วยบอกว่าเครื่องมือส่วนใหญ่ได้รับการแก้ไขแล้วให้เป็นเมืองหลวงและพื้นที่เป็นมิตร: พวกเขาพูดถูก แต่ก็ไม่ใช่คำถาม

คำถามที่ถูกต้องคือคุณต้องใช้ตัวพิมพ์ใหญ่และช่องว่างในชื่อไฟล์เท่าใด คำถามนี้ยกเว้นเมื่อฉันกำลังเขียนโปรแกรมใน Java คำตอบคือส่วนใหญ่ตลอดเวลา: ฉันไม่จำเป็นต้องเมืองหลวงและช่องว่างในชื่อไฟล์ของฉัน ช่องว่างทั้งหมดที่ฉันแทนที่ด้วยเครื่องหมายขีดล่าง ( _) หรือเครื่องหมายลบ ( -) และเพราะเหตุนี้ฉันจึงไม่ใช้กรณีอูฐ (aka. camelCase) ที่ตรงกันข้ามกับศาสนาอื่น

หลายคนเรียกพล่ามมาหาฉันเพื่อทำและสอนว่า - บางคนยังทำอยู่ - บางคนสะดุดเครื่องมือที่ไม่เป็นทุน / เป็นมิตรกับอวกาศและมาหาฉันโดยบอกว่าฉันพูดถูกและควรฟังฉัน ทำสิ่งที่คุณต้องการและถ้าคุณใช้ตัวพิมพ์ใหญ่และช่องว่างในชื่อไฟล์ฉันหวังว่าคุณจะไม่เดินทางบนเครื่องมือที่เขียนไม่ดี อย่างไรก็ตามหากคุณเดินทางด้วยเครื่องมือดังกล่าวหวังว่าจะไม่ยากที่จะแก้ไขและจะไม่ทำให้ธุรกิจของคุณและ / หรือคุณต้องเสียเงินและ / หรือเวลามาก แต่ถ้ามันจบลงด้วยผลสะท้อนที่ไม่ดีคุณจะจำได้ว่าบางคนบอกคุณในอดีตว่าการใช้ตัวพิมพ์ใหญ่และช่องว่างในชื่อไฟล์เป็นการฝึกฝนที่ไม่ดี

และสุดท้ายสิ่งหนึ่งถ้าคุณต้องการหลีกเลี่ยงปัญหาทั้งหมดไม่มีตัวอักษรพิเศษในชื่อไฟล์ (เฉพาะตัวอักษรตัวเล็กตัวเลขขีดเส้นใต้และ minuses [1]) รายการตัวละครที่ไม่พึงประสงค์นี้ยังรวมถึงตัวละครที่ไม่ใช่ ASCII ทั้งหมด (ใช่, ฝรั่งเศสและคนอื่น ๆ ที่ไม่ใช่ภาษาอังกฤษ - และฉันเป็นหนึ่งในพวกเขา - ไม่มีเหล่านั้น: à, â, ä, ç, é, ... , ö, æ, œ , ... ) นอกจากนี้ยังขยายไปถึงสิ่งอื่น ๆ อีกมากมายรวมทั้งการเข้าสู่ระบบและรหัสผ่าน ฉันจะให้คุณเดาว่าเกิดอะไรขึ้นเมื่อคุณใส่เครื่องหมายคำพูดหรือเครื่องหมายคำพูดคู่ ( 'หรือ") ในการเข้าสู่ระบบหรือรหัสผ่านที่จัดการโดยสคริปต์ทุบตีที่ไม่ได้เขียนโดย sysadmin ที่ยืนยันแล้ว ....

[1]: บางทีเราอาจจะขยายว่า~, @, #และคนอื่น ๆ แต่นี้เป็นปัญหาในการมองหา (และใช่ฉันรู้เกี่ยวกับไฟล์ emacs ... )


1
สิ่งสุดท้ายคือสิ่งที่ควรได้รับการจัดการโดยระบบตรวจสอบความถูกต้องไม่ใช่ผู้ใช้ที่มากับรหัสผ่าน หากระบบ จำกัด ชุดอักขระที่อนุญาตในรหัสผ่านแสดงว่าเป็นระบบที่ไม่ดี
แบล็กไลท์ส่องแสง

การ จำกัด ตัวอักษรในรหัสผ่านเป็นหัวข้อถกเถียง: li1, oO0, ... ขึ้นอยู่กับความรักและยากที่จะสื่อสาร บางคนบอกว่าไม่ควรสื่อสารรหัสผ่าน แต่รหัส WiFi เป็นรหัสผ่านที่ฉันสื่อสารกับเพื่อนของฉันเมื่อพวกเขาอยู่ในที่ของฉัน ...
jfg956

นั่นเป็นตัวเลือกที่ใส่ใจในส่วนของคุณเพื่อหลีกเลี่ยงการใช้ตัวอักษรบางตัวแทนที่จะเป็นข้อ จำกัด ที่สร้างไว้ในระบบ (ในตัวอย่างนี้มาตรฐาน Wi-Fi, AP และการติดตั้งไคลเอนต์ ฯลฯ ) หากคุณใช้สตริงของอักขระที่สุ่มเลือกเป็นรหัสผ่านคุณสามารถปรับปรุงความสามารถในการอ่านโดยใช้ (หรือกระตุ้นให้ผู้รับใช้) แบบอักษร monospace หรือเพียงแค่ใช้สัญลักษณ์พิเศษที่โดดเด่นกว่าถ้าคุณเขียนด้วยลายมือ L, ตัวพิมพ์ใหญ่ I และตัวเลข 1; ตัวพิมพ์เล็ก O เล็ก, ตัวกลมตัวพิมพ์ใหญ่ O, สแลชหรือจุดหลัก 0; ฯลฯ ) หรือคุณสามารถใช้ข้อความรหัสผ่าน
แบล็กไลท์ส่องแสง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.