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

คำสั่ง ls แสดงรายการเนื้อหาของไดเรกทอรี

16
ฉันจะรับขนาดของไดเรกทอรีในบรรทัดคำสั่งได้อย่างไร
ฉันพยายามที่จะได้รับขนาดของไดเรกทอรี (ที่มีไดเรกทอรีและไดเรกทอรีย่อย) โดยใช้คำสั่งที่มีตัวเลือกls lดูเหมือนว่าจะใช้งานได้กับไฟล์ ( ls -l file name) แต่ถ้าฉันพยายามหาขนาดของไดเรกทอรี (เช่นls -l /home) ฉันจะได้รับเพียง 4096 ไบต์แม้ว่าทั้งหมดจะใหญ่กว่าก็ตาม




8
ทำไม * ไม่ * แยก `ls '(และจะทำอะไรแทน)
ฉันเห็นคำตอบที่อ้างถึงลิงก์นี้อย่างสม่ำเสมอโดยระบุอย่างชัดเจนว่า"อย่าแยกวิเคราะห์ls" เรื่องนี้ทำให้ฉันรำคาญด้วยเหตุผลสองประการ: ดูเหมือนว่าข้อมูลในลิงก์นั้นได้รับการยอมรับโดยขายส่งด้วยคำถามเล็กน้อย แต่ฉันสามารถเลือกข้อผิดพลาดอย่างน้อยสองสามข้อในการอ่านแบบไม่เป็นทางการ ดูเหมือนว่าปัญหาที่ระบุไว้ในลิงค์นั้นไม่ได้ก่อให้เกิดความปรารถนาที่จะหาทางแก้ไข จากย่อหน้าแรก: ... เมื่อคุณขอ[ls]รายการไฟล์มีปัญหาใหญ่: Unix อนุญาตให้ตัวละครเกือบทุกตัวในชื่อไฟล์รวมถึงช่องว่าง, newlines, จุลภาค, สัญลักษณ์ท่อและสิ่งอื่น ๆ ที่คุณเคยลองใช้เป็น ตัวคั่นยกเว้น NUL ... lsแยกชื่อไฟล์ด้วยการขึ้นบรรทัดใหม่ สิ่งนี้ใช้ได้จนกว่าคุณจะมีไฟล์ที่มีการขึ้นบรรทัดใหม่ในชื่อ และเนื่องจากผมไม่ทราบว่าการดำเนินการใด ๆlsที่ช่วยให้คุณสามารถที่จะยุติชื่อไฟล์ที่มีตัวอักษร NUL lsแทนการขึ้นบรรทัดใหม่นี้จะทำให้เราไม่สามารถที่จะได้รับรายชื่อของชื่อไฟล์ได้อย่างปลอดภัยด้วย คนเกียจคร้านใช่มั้ย วิธีที่เคยเราสามารถจัดการกับการขึ้นบรรทัดใหม่ยกเลิกชุดจดทะเบียนสำหรับข้อมูลที่อาจมีการขึ้นบรรทัดใหม่? ถ้าคนที่ตอบคำถามในเว็บไซต์นี้ไม่ได้ทำสิ่งนี้ทุกวันฉันอาจคิดว่าเรากำลังมีปัญหา ความจริงก็คือlsการใช้งานส่วนใหญ่ให้ api ที่ง่ายมากสำหรับการแยกวิเคราะห์ผลลัพธ์ของพวกเขาและเราทุกคนได้ทำมันมาตลอดโดยไม่ได้ตระหนักถึงมัน ไม่เพียง แต่คุณสามารถจบชื่อไฟล์ด้วย null คุณสามารถเริ่มต้นด้วย null ได้เช่นกันหรือกับสตริงอื่น ๆ ที่คุณอาจต้องการ มีอะไรมากกว่าที่คุณสามารถกำหนดสตริงพลเหล่านี้ต่อไฟล์ชนิด โปรดพิจารณา: LS_COLORS='lc=\0:rc=:ec=\0\0\0:fi=:di=:' ls -l --color=always | cat -A total 4$ drwxr-xr-x …
204 shell  ls 

3
เหตุใด 'ls' จึงตัดรายการด้วยช่องว่างในเครื่องหมายคำพูดเดี่ยว
ฉันเพิ่งสังเกตเห็นว่าในหนึ่งในเครื่องของฉัน (เรียกใช้ Debian Sid) เมื่อใดก็ตามที่ฉันพิมพ์lsชื่อไฟล์ใด ๆ ที่มีช่องว่างมีคำพูดเดียวรอบมัน ฉันตรวจสอบชื่อแทนของฉันทันทีเพื่อค้นหาพวกเขาเหมือนเดิม wyatt@debian630:~/testdir$ ls 'test 1.txt' test1.txt wyatt@debian630:~/testdir$ alias alias ls='ls --color=auto' alias wget='wget --content-disposition' wyatt@debian630:~/testdir$ (ภาพ) การทดสอบอื่นด้วยไฟล์ที่มีเครื่องหมายคำพูดเดี่ยวในชื่อของพวกเขา (เช่นการตอบคำขอโดย jimmij): wyatt@debian630:~/testdir$ ls 'test 1.txt' test1.txt 'thishasasinglequotehere'\''.txt' wyatt@debian630:~/testdir$ touch "'test 1.txt'" wyatt@debian630:~/testdir$ ls ''\''test 1.txt'\''' test1.txt 'test 1.txt' 'thishasasinglequotehere'\''.txt' (ภาพ) อัพเดตด้วยเอาต์พุต coreutils-8.26 ใหม่ (ซึ่งเป็นที่ยอมรับน้อยกว่าความสับสน แต่ยังคงเกิดการระคายเคืองตามค่าเริ่มต้น) …

8
อะไรเป็นสาเหตุของพื้นหลังสีเขียวนี้ในเอาต์พุต ls
มีสองไดเรกทอรีที่แสดงโดย 'ls' ปกติไดเรกทอรีใดก็ได้ที่มีสีน้ำเงินบนพื้นหลังสีดำ แต่คนแรกเป็นสีฟ้าบนสีเขียวและอ่านไม่ได้ ทำไมนี้ ทำอย่างไรจึงจะทำให้สีน้ำเงินเป็นสีดำหรืออย่างน้อยก็มีบางสิ่งบางอย่างที่ทำให้บางสิ่งบางอย่างมืดไป? สิ่งนี้อยู่ใน Ubuntu 12.04 โดยใช้ bash ใน Gnome Terminal ใน Konsole สีน้ำเงินจะเข้มขึ้นเล็กน้อยและเป็นไปได้ที่จะอ่าน
141 terminal  ls  colors 

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

10
รายการไฟล์ที่เรียงลำดับตัวเลข
ฉันมีพวงของไฟล์จากไปlog1log164 ฉันพยายามที่จะแสดงรายการไดเรกทอรี (เรียงลำดับ) ในเทอร์มินัล UNIX แต่ฟังก์ชั่นการเรียงลำดับจะให้รูปแบบดังนี้: home:logs Home$ ls -1 | sort log1.gz log10.gz log100.gz log101.gz log102.gz log103.gz log104.gz log105.gz log106.gz ...etc สิ่งที่ฉันต้องการคือ home:logs Home$ ls -1 | sort log1.gz log2.gz log3.gz log4.gz log5.gz log6.gz log7.gz ...{more here} log99.gz log100.gz log101.gz log102.gz ...etc ข้อเสนอแนะใด ๆ ในสิ่งที่ฉันสามารถใช้เพื่อทำสิ่งนี้?
122 ls  filenames  sort  numbering 

7
@ หมายถึงอะไรใน ls -l?
ฉันใช้ Mac OSX เมื่อฉันพิมพ์ls -lฉันเห็นสิ่งที่ชอบ drwxr-xr-x@ 12 xonic staff 408 22 Jun 19:00 . drwxr-xr-x 9 xonic staff 306 22 Jun 19:42 .. -rwxrwxrwx@ 1 xonic staff 6148 25 Mai 23:04 .DS_Store -rw-r--r--@ 1 xonic staff 17284 22 Jun 00:20 filmStrip.cpp -rw-r--r--@ 1 xonic staff 3843 21 Jun 21:20 filmStrip.h …
121 permissions  osx  ls 

4
ฉันจะทำ ls แล้วเรียงลำดับผลลัพธ์ตามวันที่สร้างได้อย่างไร
วันที่สั่งซื้อจะเรียงลำดับตามอะไร ลำดับตัวอักษรและตัวเลขไม่แน่นอน ls -ltเรียงลำดับตามเวลาที่แก้ไข แต่ฉันต้องการเวลาในการสร้าง
112 files  ls  timestamps 

4
วิธีรับเฉพาะไฟล์ที่สร้างหลังจากวันที่ด้วย ls?
ด้วยlsคำสั่งเป็นไปได้หรือไม่ที่จะแสดงเฉพาะไฟล์ที่สร้างขึ้นหลังจากวันที่ที่ระบุชั่วโมง ... ฉันถามเพราะฉันมีไดเรกทอรีพันไฟล์ ฉันต้องการดูไฟล์ทั้งหมดที่สร้างขึ้นเมื่อวานนี้ ฉันใช้ls -ltrแต่ฉันต้องรอเพื่อดูไฟล์ทั้งหมด ... มีเทียบเท่าDIRECTORY/SINCE=dateจาก OpenVMS หรือไม่
97 ls 

4
เปิดไฟล์ครั้งสุดท้าย
เป็นไปได้ไหมที่จะมีเวลาเมื่อเปิดไฟล์ครั้งล่าสุดและเรียงลำดับไฟล์ทั้งหมดในไดเรกทอรีตามเวลาเหล่านั้น?
94 files  ls  date 

7
ฉันจะ จำกัด จำนวนไฟล์ที่พิมพ์โดย ls ได้อย่างไร
มีวิธี จำกัด ปริมาณไฟล์ที่ระบุในlsคำสั่งหรือไม่? ฉันเคยเห็น: ls | head -4 แต่จะได้รับheadหรือtailดำเนินการฉันต้องรอlsให้การดำเนินการเสร็จสิ้นและไดเรกทอรีที่มีไฟล์จำนวน enourmous ซึ่งอาจใช้เวลานาน ฉันต้องการรันlsคำสั่งที่ จำกัด โดยไม่ใช้headคำสั่งนั้น
89 command-line  ls  limit 

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

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