วิธีการจัดระเบียบไฟล์ที่ซ่อนอยู่ในรายการไฟล์ `ls`


10

LS_COLORSตัวแปรสภาพแวดล้อมช่วยให้คุณตัดสินใจเลือกสีสำหรับไฟล์ประเภทต่างๆสำหรับlsคำสั่งของ GNU coreutil เช่นไดเรกทอรีไฟล์ปกติลิงก์ ฯลฯ ฉันคิดว่าไฟล์ dot ถือว่าเป็นรูปแบบของประเภทไฟล์ Linux และไม่ใช่ชนิดของตัวเองจึงมี ไม่มีตัวเลือกสำหรับการระบุสีที่แสดงสำหรับพวกเขา

มีวิธีใดบ้างที่คุณสามารถสร้างlsรายชื่อให้แสดงไฟล์ที่ซ่อนอยู่ในสีที่ต่างกัน


คำตอบนี้LS_COLORSได้มากกว่าที่คุณเคยอยากรู้เกี่ยวกับ ฉันไม่สามารถหาวิธีทำให้ dotfiles ทำงานได้ แต่คุณอาจต้องการตรวจสอบ
terdon

1
@terdon - ใช้งานไม่ได้กับ dotfiles มันอาจจะสำหรับบางคน แต่น้อยมาก มีการจำกัดความยาวของส่วนขยายและชื่อไฟล์ส่วนใหญ่จะเกินความยาวส่วนขยาย มันจะทำงานสำหรับไฟล์ชื่อ*.hideเช่น คำตอบนี้เน้นปัญหาที่คล้ายกันสำหรับไดเรกทอรีแม้ว่าคำตอบนี้และปัญหาไดเรกทอรีอาจไม่เหมือนกัน
mikeserv

คำตอบ:


1

หากคุณเรียงลำดับตามชื่อสิ่งนี้อาจช่วย:

alias ll='LS_COLORS=$LS_COLORS:"di=0;34:" ; S_COLORS=$LS_COLORS:"fi=0;37:" ; export LS_COLORS; ls -dHhl --color=auto .*; LS_COLORS=$LS_COLORS:"di=1;94:" ; LS_COLORS=$LS_COLORS:"fi=1;37:" ; export LS_COLORS$

อย่างไรก็ตามมันแยกคำสั่ง ls ในสองส่วนส่วนหนึ่งสำหรับไฟล์และโฟลเดอร์ที่ซ่อนส่วนที่เหลือ


0

cfใช่การใช้งาน ฉันเพิ่งเปิดตัวเวอร์ชันที่มีเอกสารที่ดีมันมีสีเฉพาะเอาท์พุตต่อนามสกุลไฟล์และ / หรือคุณลักษณะพิเศษบางอย่าง (ไฟล์ที่รันได้ลิงก์ลิงก์ที่ซ่อนอยู่และไดเรกทอรี) ให้มันยิง !!! มันยากที่จะละทิ้งการใช้สิ่งนี้เมื่อคุณคุ้นเคย

https://github.com/AdamDanischewski/cf


-1

หากคุณเพียงแค่ต้องการเน้นไฟล์ที่ซ่อนอยู่ (และโฟลเดอร์) และคุณไม่สนใจเกี่ยวกับการระบายสีของไฟล์อื่นทั้งหมดแล้ววิธีที่ชัดเจนคือการเรียกใช้ ls -la | grep -E "^| \.[^/|'.].*"

ถ้าคุณต้องการรักษาสีอื่น ๆ สิ่งต่าง ๆ ก็เริ่มเลื่องลือเพราะ$LS_COLORSไม่สนับสนุน colorizing ไฟล์ที่ซ่อนอยู่ตามที่ดูเหมือน

ฉันคิดว่าจะผนวกไฟล์ที่ซ่อนอยู่ของไดเรกทอรีปัจจุบันเข้ากับ$LS_COLORSตัวแปรสภาพแวดล้อมเป็นส่วนขยายหลอกแล้วดำเนินการls -laและหลังจากนั้นเรียกใช้dircolorsเพื่อรีเซ็ตสกีมาสีดั้งเดิม เห็นได้ชัดว่าจะมีข้อขัดแย้งหากไฟล์ที่ซ่อนมีชื่อเหมือนกับนามสกุลที่รู้จัก นอกจากนี้วิธีนี้ใช้ไม่ได้กับโฟลเดอร์ที่ซ่อนอยู่

คำเตือน: โซลูชันนี้เป็นการแฮ็ก (ไม่ผ่านการทดสอบอย่างละเอียด) ใช้ความเสี่ยงของคุณเอง

for h in $(ls -A | grep "^\."); do LS_COLORS="$LS_COLORS*$h=04;05:"; done; ls -la; eval $(dircolors)

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