รับรายการไฟล์ทั้งหมดในโฟลเดอร์และโฟลเดอร์ย่อยในไฟล์


28

ฉันจะรับรายการไฟล์ทั้งหมดในโฟลเดอร์รวมถึงไฟล์ทั้งหมดในโฟลเดอร์ย่อยทั้งหมดและวางผลลัพธ์ในไฟล์ได้อย่างไร

คำตอบ:


39

คุณสามารถทำได้บนบรรทัดคำสั่งโดยใช้สวิตช์ -R (เรียกซ้ำ) จากนั้นไพพ์เอาต์พุตไปยังไฟล์ดังนั้น:

ls -R > filename1

สิ่งนี้จะทำให้ไฟล์ชื่อ filename1 ในไดเรกทอรีปัจจุบันที่มีรายการไดเรกทอรีเต็มรูปแบบของไดเรกทอรีปัจจุบันและไดเรกทอรีย่อยทั้งหมดภายใต้

คุณสามารถแสดงรายการไดเรกทอรีอื่นที่ไม่ใช่ไดเรกทอรีปัจจุบันโดยการระบุเส้นทางแบบเต็มเช่น:

ls -R /var > filename2

จะแสดงรายการทุกอย่างในและภายใต้ / var และวางผลลัพธ์ในไฟล์ในไดเรกทอรีปัจจุบันชื่อ filename2 สิ่งนี้ใช้ได้กับไดเร็กทอรีที่ผู้ใช้รายอื่นเป็นเจ้าของรวมถึงรูทตราบเท่าที่คุณมีสิทธิ์อ่านเพื่อเข้าถึงไดเร็กทอรี

นอกจากนี้คุณยังสามารถแสดงรายการไดเรกทอรีที่คุณไม่สามารถเข้าถึงได้เช่น / root ด้วยการใช้คำสั่ง sudo เช่น:

sudo ls -R /root > filename3

จะแสดงรายการทุกอย่างใน / root โดยวางผลลัพธ์ในไฟล์ชื่อ filename3 ในไดเรกทอรีปัจจุบัน เนื่องจากระบบอูบุนตูส่วนใหญ่ไม่มีอะไรในชื่อไฟล์ไดเรกทอรี 3 นี้จะไม่มีสิ่งใดเลย แต่มันจะใช้ได้ถ้ามันทำ


อาจจะบอกคนที่จะ cd ลงในไดเรกทอรีก่อนสามารถเพิ่มเพื่อ answer.Al นี้ทำงานได้ดีถ้าฉันเป็นเจ้าของไดเรกทอรี แต่ถ้าพยายามในไดเรกทอรีพูดว่าเป็นเจ้าของโดย root มันไม่ได้ฉันได้รับอนุญาตตามปกติถูกปฏิเสธและ sudo ตามด้วยคำสั่งของคุณ ยังได้รับอนุญาตปฏิเสธ มีวิธีแก้ไขโดยไม่ต้องล็อกอินเป็น root หรือไม่?
เมียน

ฉันก็บอกว่าไดเรกทอรี "ปัจจุบัน" การใช้ซีดีอย่างถูกต้องอาจเป็นประเด็นของคำถามอื่นและฉันแน่ใจว่าเป็นเช่นนั้น คุณสามารถแสดงรายการไดเร็กตอรี่ที่ root เป็นเจ้าของได้ตราบใดที่คุณมีสิทธิ์อ่าน ไดเร็กทอรีที่ root เป็นเจ้าของซึ่งผู้ใช้มีสิทธิ์เข้าถึงเพื่ออ่านสามารถแสดงรายการด้วย ls -R มันยากที่จะจินตนาการว่าทำไมคุณต้องการแสดงรายการไดเรกทอรีที่ root เป็นเจ้าของซึ่งคุณไม่มีสิทธิ์เข้าถึงเพื่ออ่าน แต่ sudo นั้นใช้ได้จริงถ้าคุณให้เส้นทางแบบเต็ม ฉันกำลังเพิ่มตัวอย่างสำหรับทั้งสองอย่างนี้ แต่ไม่รวมการใช้ซีดี
fabricator4

8

ต้นไม้ ติดตั้งแผนผัง

อีกทางเลือกหนึ่งในการเรียกซ้ำlsคือเครื่องมือบรรทัดคำสั่งtreeที่มาพร้อมกับตัวเลือกมากมายเพื่อปรับแต่งรูปแบบของเอาต์พุตการแจกแจง ดูmanpage สำหรับต้นไม้สำหรับตัวเลือกทั้งหมด


7

เพียงใช้findคำสั่งด้วยชื่อไดเรกทอรี ตัวอย่างเช่นเมื่อต้องการดูไฟล์และไฟล์ทั้งหมดภายในโฟลเดอร์ในโฮมไดเร็กตอรี่ของคุณ, ให้ใช้

find ~

ตรวจสอบคำสั่งmanpageค้นหาด้วยตนเองfindไอคอน Manpage

ตรวจสอบค้นหาหน้าข้อมูล GNU โดยใช้info findคำสั่งในเทอร์มินัล


นี่เป็นวิธีที่ทรงพลังที่สุด findมีพารามิเตอร์มากมายเพื่อปรับแต่งรูปแบบผลลัพธ์และการเลือกไฟล์
pauljohn32

นั่นเป็นวิธีที่ดีที่สุดในความคิดของฉัน ง่ายและปฏิบัติ สามารถทำได้$ find . > outputถ้ามีไดเรกทอรีจำนวนมาก
felippe

4

นอกจากนี้:

gvfs-tree /path/to/folder/

จะให้เหมือนกับต้นไม้ที่ใช้อักขระอื่นสำหรับบรรทัด

tree -a

เพื่อแสดงไฟล์ที่ซ่อนอยู่ด้วย

tree -i

เพื่อไม่แสดงบรรทัด


1
  1. ไปที่โฟลเดอร์ที่คุณต้องการรับรายการเนื้อหา
  2. เลือกไฟล์ที่คุณต้องการในรายการ ( Ctrl+ Aถ้าคุณต้องการทั้งโฟลเดอร์)
  3. คัดลอกเนื้อหาที่มี+CtrlC
  4. เปิด Gedit และวางเนื้อหาโดยใช้+Ctrl Vมันจะถูกวางเป็นรายการและจากนั้นคุณสามารถบันทึกไฟล์

วิธีนี้จะไม่รวมโฟลเดอร์ย่อยเนื้อหาว่า


1

นอกจากนี้คุณยังสามารถใช้คู่ GUI เพื่อ Takkat ของtreeข้อเสนอแนะซึ่งเป็นBaobab มันถูกใช้เพื่อดูโฟลเดอร์และโฟลเดอร์ย่อยบ่อยครั้งเพื่อวัตถุประสงค์ในการวิเคราะห์การใช้งานดิสก์ คุณอาจติดตั้งไว้แล้วหากใช้เดสก์ท็อป GNOME (มักเรียกว่าเครื่องมือวิเคราะห์การใช้ดิสก์)

sudo apt-get install baobab

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

(คุณยังสามารถรับรายการไฟล์ที่มีขนาดโดยใช้ls -shR ~/myfolderแล้วส่งออกเป็นไฟล์)

ป้อนคำอธิบายภาพที่นี่


OP ต้องการผลลัพธ์ในไฟล์โดยสันนิษฐานว่าจะทำอย่างอื่นกับมัน แม้ว่า Baobab จะเป็นเครื่องมือที่ดี แต่ดูเหมือนว่าจะไม่เป็นไปตามข้อกำหนดของคำถามดั้งเดิมของ OP
fabricator4

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