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

ชื่อไฟล์เป็นชื่อที่ใช้เพื่อระบุไฟล์ที่ไม่ซ้ำกันในระบบไฟล์ที่กำหนด

3
ทำความเข้าใจเกี่ยวกับการเข้ารหัสชื่อไฟล์ Unix
ฉันมีความเข้าใจยากว่าการเข้ารหัสชื่อไฟล์ทำงานอย่างไร ในยูนิกซ์ฉันพบคำอธิบายที่ขัดแย้ง ชื่อไฟล์จะถูกเก็บไว้เป็นตัวละคร เพื่ออ้างอิงคำตอบอื่น: คำถามหลายข้อเกี่ยวกับการเข้ารหัสอักขระระบบไฟล์บน linux […] ดังที่คุณพูดถึงคำถามของคุณชื่อไฟล์ UNIX เป็นเพียงลำดับของอักขระ เคอร์เนลไม่รู้อะไรเกี่ยวกับการเข้ารหัสซึ่งเป็นแนวคิดของพื้นที่ผู้ใช้ (เช่นระดับแอปพลิเคชัน) หากชื่อไฟล์ถูกจัดเก็บเป็นตัวอักษรจะต้องมีการเข้ารหัสบางอย่างเนื่องจากในที่สุดชื่อไฟล์จะต้องลงท้ายด้วยลำดับบิตหรือไบต์บนดิสก์ หากผู้ใช้สามารถเลือกการเข้ารหัสใด ๆเพื่อแมปอักขระกับลำดับไบต์ที่ป้อนไปยังเคอร์เนลเป็นไปได้ที่จะสร้างลำดับไบต์ใด ๆสำหรับชื่อไฟล์ที่ถูกต้อง สมมติว่าต่อไปนี้: ผู้ใช้ใช้การเข้ารหัสแบบสุ่มXซึ่งแปลไฟล์fooเป็นลำดับไบต์αและบันทึกลงดิสก์ อีกประการหนึ่งการใช้งานของผู้ใช้การเข้ารหัสY ในการเข้ารหัสนี้αแปลเป็น/ซึ่งไม่อนุญาตให้ใช้เป็นชื่อไฟล์ อย่างไรก็ตามสำหรับผู้ใช้คนแรกไฟล์นั้นถูกต้อง ฉันคิดว่าสถานการณ์นี้ไม่สามารถเกิดขึ้นได้ ชื่อไฟล์จะถูกจัดเก็บเป็นไบนารี blobs เพื่ออ้างอิงคำตอบอื่น: การ เข้ารหัสชุดอักขระใดที่ใช้สำหรับชื่อไฟล์และเส้นทางบน Linux ดังที่ผู้อื่นระบุไว้ไม่มีคำตอบสำหรับเรื่องนี้จริงๆ: ชื่อไฟล์และเส้นทางไม่มีการเข้ารหัส ระบบปฏิบัติการเกี่ยวข้องเฉพาะกับลำดับของไบต์เท่านั้น แอปพลิเคชั่นส่วนบุคคลอาจเลือกที่จะตีความว่าเป็นการเข้ารหัสในบางวิธี แต่สิ่งนี้แตกต่างกันไป หากระบบไม่จัดการกับตัวละครห้ามมีการห้ามเฉพาะอักขระ (เช่น/หรือNULL) ในชื่อไฟล์ได้อย่างไร ไม่มีแนวคิดเกี่ยวกับ/ การเข้ารหัส คำอธิบายจะเป็นระบบไฟล์ที่สามารถจัดเก็บชื่อไฟล์ที่มี ตัวอักษรใด ๆและเป็นเพียงโปรแกรมผู้ใช้ที่ใช้การเข้ารหัสเข้าบัญชีที่จะทำให้หายใจไม่ออกในชื่อไฟล์ที่มีอักขระที่ไม่ถูกต้อง ซึ่งในที่สุดก็หมายถึงว่าระบบไฟล์และเคอร์เนลกระป๋องไม่มีปัญหาใด ๆ /ชื่อจับไฟล์ที่มี ฉันก็คิดว่านี่เป็นสิ่งที่ผิด การเข้ารหัสเกิดขึ้นที่ใดและข้อ จำกัด ถูกวางที่ใดที่ไม่อนุญาตให้ใช้อักขระเฉพาะ


3
ขึ้นบรรทัดใหม่ในชื่อไฟล์
ฉันเข้าใจและยอมรับหลักฐานว่าการเขียนสคริปต์เชลล์1 แบบป้องกันเป็นเรื่องที่รอบคอบและในระยะยาวจะมีความยั่งยืนมากขึ้น คำตอบมากมายสำหรับคำถามเกี่ยวกับการประมวลผลข้อความที่นี่เป็นไปตามหลักการนี้โดยสร้างเป็นคำตอบที่อาจเกิดขึ้นสำหรับชื่อไฟล์นอกรีต ที่อาจมีช่องว่างขีดกลางและบรรทัดใหม่ บรรทัดใหม่ที่แพร่หลายในชื่อไฟล์เป็นอย่างไร โดยเฉพาะ: แอปพลิเคชันใด ๆ ที่สร้างชื่อไฟล์ที่มีบรรทัดใหม่เป็นค่าเริ่มต้นหรือไม่ มีสถานการณ์ใดบ้างที่ต้องการสร้างชื่อไฟล์ดังกล่าว หรือพวกเขาส่วนใหญ่เป็นตัวอย่างของข้อผิดพลาดของผู้ใช้? [1] ความหมายการวางแผนและการจัดการสถานการณ์และภาระผูกพันที่เป็นไปได้ในวงกว้างที่สุด ... คำถามที่ได้รับแรงบันดาลใจจากความคิดเห็น (ค่อนข้างน่าตำหนิ) ในคำถามนี้

4
ระบุไฟล์ที่มีอักขระที่ไม่ใช่ ASCII หรือไม่สามารถพิมพ์ได้ในชื่อไฟล์
ในไดเรกทอรีขนาด 80GB ที่มีประมาณ 700,000 ไฟล์มีชื่อไฟล์บางส่วนที่มีอักขระที่ไม่ใช่ภาษาอังกฤษในชื่อไฟล์ นอกเหนือจากการสืบค้นผ่านรายการไฟล์อย่างตั้งใจแล้ว: วิธีง่ายๆในการแสดงรายการหรือระบุชื่อไฟล์เหล่านี้คืออะไร? วิธีสร้างตัวอักษรที่ไม่ใช่ภาษาอังกฤษที่พิมพ์ได้ - ตัวอักษรเหล่านั้นที่ไม่ได้อยู่ในช่วงที่พิมพ์ได้man ascii(ดังนั้นฉันสามารถทดสอบว่าไฟล์เหล่านี้ถูกระบุ)?

3
ความท้าทายของ Kernighan และ Pike: การใส่เครื่องหมายทับในชื่อไฟล์อย่างไร?
ฉันเพิ่งพบคำถามต่อไปนี้ในUnix Programming Environmentหนังสือคลาสสิคของ Kernighan และ Pike ใน Unix (ฉันพบข้อความด้านล่างในหน้า 79 ของปี 1984 ฉบับที่ ISBN: 0-13-937699-2): แบบฝึกหัดที่ 3-6 (คำถามเคล็ดลับ) คุณจะทำให้ a / เป็นชื่อไฟล์ได้อย่างไร (เช่น a / ที่ไม่แยกส่วนประกอบของเส้นทาง) ฉันทำงานกับ Linux มาหลายปีทั้งในฐานะผู้ใช้และโปรแกรมเมอร์ แต่ฉันไม่สามารถตอบคำถามนี้ได้ นอกจากนี้ไม่มีทางที่จะใส่ทับในชื่อไฟล์ก็ห้ามเด็ดขาดโดย kernel คุณสามารถแก้ไขระบบไฟล์ของคุณผ่านการเข้าถึงอุปกรณ์บล็อกหรือใช้อักขระที่มีลักษณะคล้ายกันจาก Unicode แต่สิ่งเหล่านั้นไม่ใช่วิธีแก้ปัญหา ฉันเข้าใจว่า Linux ≠ Unix แต่ควรใช้หลักการเดียวกันเนื่องจากระบบจะต้องสามารถแยกลำดับชั้นไดเรกทอรีออกจากเส้นทางได้อย่างไม่น่าสงสัย มีใครรู้บ้างว่า Kernighan และ Pike คิดอย่างไรเมื่อถามคำถามนี้ คำตอบที่ควรคืออะไร อะไรคือ 'เคล็ดลับ'? หรืออาจเป็นระบบ Unix …

1
คุณใส่วันที่และเวลาในชื่อไฟล์ได้อย่างไร?
ฉันพยายามรันคำสั่งและต้องการใส่วันที่และเวลาในชื่อไฟล์เอาต์พุต นี่คือคำสั่งตัวอย่างที่ฉันต้องการเรียกใช้ md5sum /etc/mtab > 2016_4_25_10_30_AM.log รูปแบบเวลาวันที่สามารถเป็นสิ่งที่เหมาะสมกับขีดล่าง แม้ว่า UTC หากไม่สามารถใช้ AM และ PM


5
ฉันจะลบไฟล์ชื่อ“>” ได้อย่างไร?
ผมทำงานสคริปต์หลามที่ผิดปกติและนำมาใช้ในการสร้างไฟล์ชื่อsudo> ฉันจะกำจัดไฟล์นี้ได้อย่างไร แน่นอนว่าเมื่อฉันพยายามที่sudo rm >ฉันได้รับข้อผิดพลาดเพราะคิดว่าฉันพยายามที่จะเปลี่ยนเส้นทางการส่งออกของbash: syntax error near unexpected token 'newline'rm -rw-r--r--มันเป็นสิทธิ์
22 bash  quoting  filenames  rm 

3
Tilde (~) ภายในไดเร็กทอรี unix ที่ทำงาน
ดังนั้น Im ทำงานในสภาพแวดล้อม UNIX และผมสังเกตเห็นว่าภายในไดเรกทอรีการทำงานของฉันซึ่งเป็นไมล์ห่างออกไปจากบ้านของฉัน UNIX ~มี ตอนนี้ครั้งหนึ่งที่ผ่านมาฉันทำrm -rf ~จากไดเรกทอรีการทำงานของฉันและจบลงด้วยการลบไดเรกทอรีบ้านของฉันอย่างสมบูรณ์และต้องเกี่ยวข้องกับไอที ฉันไม่ต้องการที่จะทำมันอีกครั้ง ในขณะเดียวกันฉันก็อยากจะรู้ เหตุใดจึง~สร้างในไดเรกทอรีทำงานของฉัน มันลื่นนิ้วผิดพลาดในขณะที่บันทึก ( :w!แต่จะเกิดอะไรขึ้น:w~? !!) ก่อนที่จะเช็คอินมีสคริปต์ที่ค้นหาไฟล์หรือโฟลเดอร์เพิ่มเติมที่ p4 ไม่ได้รับทราบดังนั้นการกำหนดนี้~อาจทำให้เกิดปัญหา ดังนั้นฉันจะลบออก~จากไดเรกทอรีการทำงานของฉันและในเวลาเดียวกันไม่ได้ลบบ้านของฉันได้อย่างไร ฉันจะมีคำสั่งสำรองข้อมูลที่เรียกว่าที่ผมใช้แทนdel rm -rfมันเป็นเพียงแค่วางสิ่งของในสถานที่ชั่วคราว ~ฉันสามารถใช้และได้รับการกำจัดของ แต่ฉันสนใจที่จะรู้ว่าทำไมจึงเกิดเหตุการณ์นี้ขึ้นและฉันจะลบออกได้อย่างไร
22 shell  filenames  home 

1
สำหรับชื่อไฟล์ขีดล่างหรือขีดกลางทั่วไปในชื่อไฟล์ Unix หรือไม่ [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว เมื่อคุณกำลังตั้งชื่อไฟล์ที่มีหลายคำในชื่อมันเป็นเรื่องธรรมดามากขึ้นในระบบ Unix ที่จะใช้เครื่องหมายขีดล่างตัวพิมพ์เล็กอูฐหรือขีดกลางเพื่อแยกคำเหล่านั้นหรือไม่?
22 files  filenames 


2
เหตุใดฉันจึงไม่มีโฟลเดอร์และไฟล์ที่มีชื่อเดียวกัน
ผมไม่เคยมีปัญหานี้มาก่อน packages/แต่ด้วยเหตุผลบางอย่างผมไม่สามารถเปลี่ยนชื่อโฟลเดอร์ของฉันไป นี่คือโครงสร้าง: root - packages_old/ - packages เมื่อฉันพยายามเปลี่ยนชื่อโฟลเดอร์ด้วย Thunar ฉันได้รับข้อความแสดงข้อผิดพลาดว่ามีไฟล์อยู่แล้ว เหมือนกับmv: blender iso $ mv packages_old/ packages/ mv: accessing `packages/': Not a directory เหตุใดฉันจึงไม่สามารถเปลี่ยนชื่อไฟล์และโฟลเดอร์ของฉันให้มีชื่อเดียวกันได้: root - packages/ - packages ฉันสาบานที่ฉันเคยทำมาก่อน

3
แบบแผนการตั้งชื่อไฟล์และไดเรกทอรี
ฉันต้องการ refactor ไฟล์และไดเรกทอรีในระบบของฉัน แต่ผมไม่แน่ใจว่าสิ่งที่เป็นวิธีที่ดีที่สุด หลังจากอ่านคำถามนี้และคำตอบแล้วฉันถือว่าส่วนที่สำคัญที่สุดคือต้องสอดคล้องกัน อย่างไรก็ตามนี่คือที่ฉันติดอยู่ เช่นในรูทมีไดเรกทอรีเช่น/binและ/usrซึ่งทั้งหมดใช้ตัวอักษรพิมพ์เล็ก แต่ในไดเรกทอรีของผู้ใช้/home/foobar/มีอยู่แล้วพวงของไดเรกทอรีเช่น~/Pictures, ~/Documentsและ~/Music(ซึ่งเป็นตัวพิมพ์ใหญ่)! อาจจะเป็นเพียงเพราะผมใช้อูบุนตู แต่สิ่งที่ถือว่าเป็นวิธีที่ดีที่สุด ?

6
มีแอพเทอร์มินัลที่อนุญาตให้คลิกชื่อไฟล์ได้หรือไม่
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Unix & Linux Stack Exchange อพยพ 6 ปีที่แล้ว มีเทอร์มินัลอีมูเลเตอร์ (ส่วนขยายหรือแอป) ที่เชื่อมโยงการแก้ปัญหาสำหรับเส้นทางในเครื่องหรือไม่? โดยเฉพาะอย่างยิ่งเมื่อฉันเห็นสิ่งต่าง ๆ เช่น: /home/sam/.gem/ruby/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb:68:in `perform_action_without_rescue ' /home/sam/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms ' /home/sam/.gem/ruby/1.8/gems/activesupport-2.3.2/lib/active_support/core_ext/benchmark.rb:17:in `ms ' ฉันต้องการที่จะคลิก: /home/sam/.gem/ruby/1.8/gems/actionpack-2.3.2/lib/action_controller/benchmarking.rb เพื่อเปิดไฟล์

5
แตกชื่อไฟล์จากพา ธ ในโปรแกรม awk
ฉันมีสคริปต์ awk และฉันได้ส่งไฟล์ CSV ไปยังมัน awk -f script.awk /home/abc/imp/asgd.csv สิ่งที่ฉันทำคือการได้รับ FILENAME script.awkภายใน FILENAME ให้เส้นทางทั้งหมดแก่ฉัน ในฐานะที่ผมอยู่ใน awk basename FILENAMEฉันไม่สามารถใช้ print FILENAME; /home/abc/imp/asgd.csv ฉันได้ลองกับสิ่งนี้แล้ว script.awk echo $FILENAME | awk -F"/" '{print $NF}' script.awkแต่ฉันไม่สามารถดำเนินการนี้ภายใน ฉันจะเข้าasgd.csvสู่โปรแกรม awk ได้อย่างไร
21 awk  filenames 

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