ฉันต้องการแสดงรายการไฟล์และไดเรกทอรีที่ซ่อนอยู่ทั้งหมดจากนั้นบันทึกผลลัพธ์ลงในไฟล์
มีคำสั่งสำหรับสิ่งนี้หรือไม่?
ฉันต้องการแสดงรายการไฟล์และไดเรกทอรีที่ซ่อนอยู่ทั้งหมดจากนั้นบันทึกผลลัพธ์ลงในไฟล์
มีคำสั่งสำหรับสิ่งนี้หรือไม่?
คำตอบ:
หากใช้ GNU find คุณสามารถทำได้
find /path -path '*/.*' -ls | tee output-file
แก้ไข
เพื่อหลีกเลี่ยงการแสดงรายการที่ไม่ซ่อนอยู่ในไดเรกทอรีที่ซ่อนอยู่
find /path -name '.*' >output-file
(ตามที่ระบุไว้tee
สามารถหลีกเลี่ยงได้หากคุณไม่จำเป็นต้องเห็นผลลัพธ์และ-ls
ควรใช้ตัวเลือกหากจำเป็นเท่านั้น)
-ls
สิ่งนี้ซึ่งอาจเป็นข้อมูลที่ยุ่งเหยิงเป็นพิเศษในการแยกวิเคราะห์ความคิด
-path
เป็น POSIX ตั้งแต่ปี 2008 -ls
ไม่ใช่มาตรฐาน แต่ค่อนข้างธรรมดา
ในการแสดงรายการไฟล์และไดเรกทอรีที่ซ่อนอยู่ในไดเรกทอรีปัจจุบันรวมถึง.
และ..
:
echo .*
ในการแสดงรายการไฟล์และไดเรกทอรีที่ซ่อนอยู่ในไดเรกทอรีปัจจุบันและไดเรกทอรีย่อยซ้ำ:
find . -name '.*'
หากคุณต้องการบันทึกผลลัพธ์ไปยังไฟล์ให้ใช้การเปลี่ยนเส้นทาง:
find . -name '.*' >output-file.txt
ด้วยzsh
(โดยใช้ตัวระบุglob D
):
print -rl ./**/.*(D)
หากต้องการรวมไฟล์ที่ไม่ได้ซ่อนไว้ในไดเรกทอรีที่ซ่อนอยู่:
setopt extendedglob
print -rl ./**/*~^*/.*(D)
คุณสามารถใส่อาร์กิวเมนต์เดียวกันหลาย ๆ ครั้งในบรรทัดคำสั่งเดียวกัน:
find /storage/????-????/ -iname '.*' -iname "*" | tee -a file-list-micSD-20190801163729.fli
tee -a
คำสั่งสามารถที่จะแสดงผลลัพธ์ของคำสั่ง (หรือstdout ) พร้อมกัน whie การเขียนไปยังแฟ้ม -a
ป้องกันตัวเลือกclobberingและไม่ผนวกข้อมูลไปยังไฟล์ที่ส่งออกเป้าหมายแทน
/storage/????-????/
เป็นเส้นทางตัวอย่าง เป็นเส้นทางไปยังการ์ด MicroSD ของโทรศัพท์มือถือ Android รุ่นใหม่ (นอกจากนี้ยังมีแอปพลิเคชั่นเทอร์มินัลสำหรับ Android ที่มีคำสั่งน้อยลง แต่ยังคงมีจำนวนเพิ่มขึ้นอย่างมากตั้งแต่ Android 6.0) การ์ด MicroSD /storage/extSdCard
เคยเป็น ตอนนี้มันเป็นหมายเลขซีเรียลปริมาณ
>
แทนที่จะใช้| tee
ถ้าไม่มีใครต้องการเห็นผลลัพธ์ทั้งหมดในเทอร์มินัล