จะทราบรายชื่อของไดเรกทอรีต่าง ๆ ในระบบไฟล์ได้อย่างไร?


11

ถ้าฉันรันsudo df -hคำสั่งฉันได้ผลลัพธ์ต่ำกว่านี้:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2              12G  9.5G  1.1G  91% /
/dev/sda4             3.8G  1.5G  2.1G  41% /home
/dev/sda1              99M   75M   20M  80% /boot
tmpfs                 3.9G     0  3.9G   0% /dev/shm
/dev/sdc1              51G  2.6G   46G   6% /u000

แต่ฉันจะรู้รายการไดเรกทอรีภายใต้ได้/sda2อย่างไร ตัวอย่างเช่นถ้าฉันเรียกใช้ls /คำสั่งฉันได้รับไดเรกทอรีทั้งหมดภายใต้ราก

$ ls /
bin   cdunix     dev  etc   lib    lost+found  misc  mnt1  mtp     net  PatchInstall  root  selinux  sys       tmp   usr
boot  cron_4058  esm  home  lib64  media       mnt   mnt2  NB_DIR  opt  proc          sbin  srv      tftpboot  u000  var
  • แต่มีคำสั่งหรือวิธีการใดบ้างที่ฉันสามารถแสดงรายการระบบไฟล์ของพวกเขาด้วยเช่นกัน?
  • /dev/sda2/เนื่องจากมีจำนวนน้อยมากของพื้นที่ที่เหลืออยู่บน ฉันจะว่างพื้นที่เพิ่มเติมจากพาร์ติชันนี้ได้อย่างไร

คำตอบ:


4

treeถ้าผมอ่านคำถามนี้อย่างถูกต้องมีโปรแกรมที่เรียกว่า นี้จะแสดงรายการไดเรกทอรีทั้งหมดในต้นไม้เช่นโครงสร้าง เมื่อติดตั้งแล้วคุณสามารถทำสิ่งต่อไปนี้:

tree -xWhere -xStay บนระบบไฟล์ปัจจุบันเท่านั้น Ala พบ -xdev

อัปเดต: ฉันลองtree -P /dev/xvdaแล้วและดูเหมือนว่าจะแสดงไดเรกทอรีภายใต้ระบบไฟล์นั้น -Pคำสั่งยืนสำหรับรูปแบบ ดังนั้นเพื่อตอบคำถามของคุณคุณควรจะสามารถใช้มันเพื่อแสดงรายการไดเรกทอรีในระบบไฟล์

หากต้องการแสดงรายการระดับแรกใน/ไดเรกทอรีให้ลองใช้คำสั่ง:

tree -LP 1 /dev/xvda

โดยที่Lระดับความลึกการแสดงผลสูงสุดของแผนผังไดเรกทอรี

อ้างถึงหน้าคนที่นี่


ฉันจะใช้คำสั่ง tree กับระบบแฟ้มเพื่อแสดงรายการไดเรกทอรีทั้งหมดได้อย่างไร
ursitesion

1
ฉันปรับปรุงคำตอบของฉัน ฉันเชื่อว่าคุณทำได้
ryekayo

ฉันดำเนินการ tree -P /dev/sda4/และได้รับผลลัพธ์นี้: ' 0 ไดเรกทอรี, 0 files`
ursitesion

ตรวจสอบให้แน่ใจว่าคุณอยู่ใน/ไดเรกทอรีเมื่อใช้คำสั่งนี้
ryekayo

แก้ไข. วิธีรายการไดเรกทอรีเพียงระดับเดียว?
ursitesion

8

du -hx --max-depth=1 /หากคุณกำลังมองหาไดเรกทอรีที่มีการใช้พื้นที่และไม่ได้อยู่ในพาร์ทิชันที่แตกต่างกันแล้วคุณต้องการ การ-xบอกไม่ให้สืบทอดลงในไดเร็กทอรีที่อยู่บนระบบไฟล์อื่น (พาร์ติชัน) การ--max-depth=1ขอให้พิมพ์เฉพาะบรรทัด (แสดงรายการพื้นที่ทั้งหมดสำหรับไดเรกทอรีนั้นและไดเรกทอรีย่อยทั้งหมด) สำหรับแต่ละไดเรกทอรี/แทนที่จะเป็นทุกไดเรกทอรีย่อยเดียว

จากนั้นคุณสามารถเริ่มเจาะลึกลงในไดเรกทอรีย่อยขนาดใหญ่เพื่อค้นหาสิ่งที่ใช้พื้นที่


3

แต่ฉันจะรู้รายการไดเรกทอรีภายใต้ / sda2 ได้อย่างไร

ไม่มีไดเร็กทอรีภายใต้ / dev / sda2, / dev / sda2 เป็นพาร์ติชันบนดิสก์ (sda คือดิสก์และ 2 คือหมายเลขพาร์ติชัน)

แต่มีคำสั่งหรือวิธีการใดบ้างที่ฉันสามารถแสดงรายการระบบไฟล์ของพวกเขาด้วยเช่นกัน?

เนื่องจากคุณมีการติดตั้งระบบไฟล์เดียวจึงมีอยู่ใน / fs

วิธีที่ดีกว่าในการดูรายการของระบบไฟล์ที่เมาท์คือการใช้ mount:

$ sudo mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
udev on /dev type devtmpfs (rw,relatime,size=10240k,nr_inodes=2018106,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,relatime,size=3232436k,mode=755)
/dev/sda5 on / type ext4 (rw,noatime,errors=remount-ro,data=ordered)

หากต้องการดูจำนวนพื้นที่เก็บข้อมูลที่ใช้โดยโฟลเดอร์คุณสามารถใช้duคำสั่งเช่น:

~/tmp$ du -sh
752K    .

duมีตัวเลือกใช้งานเต็มรูปแบบมากมาย สิ่งที่ดีจริงๆเมื่อติดตามโฟลเดอร์ขนาดใหญ่คือ--max-depth=1ซึ่งจะจำกัดความลึกของเอาต์พุต:

du -h --max-depth=1 /
7,9M    /sbin
702M    /lib

คุณจะได้รับข้อความแสดงข้อผิดพลาดมากมายหากคุณเปิดใช้งานบน / ไม่รูท

duสามารถช่วยคุณหาไฟล์ที่จะลบเพื่อเพิ่มพื้นที่ หากคุณไม่สามารถลบไฟล์ใด ๆ ได้คุณต้องปรับขนาดพาร์ติชันหรือย้ายข้อมูลบางอย่างไปยังพาร์ติชันอื่น


ฉันได้เพิ่มระบบไฟล์ทั้งหมดบนเซิร์ฟเวอร์ของฉัน
ursitesion

@ursitesion ตกลงคำถามจริงของคุณคืออะไร?
Martin

ฉันต้องการลด 'การใช้%' ในของฉัน/dev/sda2
ursitesion

อ่า .. คุณควรแก้ไขคำถามของคุณแล้ว ฉันจะอัปเดตคำตอบของฉัน
Martin

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