แสดงฟิสิคัลดิสก์เท่านั้นเมื่อใช้ df และ mount


9

เมื่อฉันใช้dfหรือmountฉันส่วนใหญ่สนใจในฟิสิคัลพาร์ติชันดิสก์ ทุกวันนี้ผลลัพธ์ของคำสั่งเหล่านั้นถูกครอบงำด้วยระบบไฟล์ชั่วคราวและเสมือนกลุ่ม cg และสิ่งอื่น ๆ ที่ฉันไม่สนใจเป็นประจำ

พาร์ติชันทางกายภาพของฉันในผลลัพธ์เริ่มต้นด้วย ' /' ดังนั้นฉันพยายามสร้างนามแฝงสำหรับdfและmount:

alias df1="df | egrep '^/'"
alias mount1="mount | egrep '^/'"

ที่ทำงาน OK สำหรับmount1(แม้ว่ามันแสดงให้เห็นว่า ' /' สีแดง) แต่สำหรับdf1ผมจะบางครั้งเหมือนจะเพิ่ม-hตัวเลือกในการและไม่สามารถทำdf df1 -hฉันไม่ต้องการมีนามแฝงสำหรับชุดค่าผสมของตัวเลือกทั้งหมดที่ฉันอาจต้องการใช้ ฉันต้องดูการกำหนดฟังก์ชั่นใน bash (ฉันไม่ต้องการ) หรือไม่? มีวิธีแก้ปัญหาที่ดีกว่าdf1หรือไม่?

คำตอบ:


6

คุณสามารถแก้ปัญหาdf1ข้อโต้แย้งโดยใช้นามแฝงต่อไปนี้:

alias df1='df --type btrfs --type ext4 --type ext3 --type ext2 --type vfat --type iso9660'

ตรวจสอบให้แน่ใจว่าได้เพิ่มประเภทอื่น ๆ ( xfs, fuseblk(สำหรับการสนับสนุน NTFS ที่ทันสมัยตามที่ @Pandya ชี้ให้เห็น) และอื่น ๆ ) ที่คุณสนใจโดยคุณสามารถทำได้df1 -hและรับผลลัพธ์ที่คาดหวัง

mountมี-tตัวเลือก แต่คุณไม่สามารถระบุได้หลายครั้ง (ใช้ตัวสุดท้ายเท่านั้น) ที่นั่นฉันจะใช้:

alias mount1="mount | /bin/grep -E '^/'"

ฉันใช้grep -Eตามที่egrepไม่สนับสนุนและการใช้/bin/grepทำให้แน่ใจว่าคุณไม่ได้ใช้--colour=autoชื่อแทนสำหรับgrep/egrep


df --type ntfsไม่ได้แสดงพาร์ติชั่น 5 ntfs และทำให้พวกเขาข้ามผลที่ได้มาให้ฉัน
Pandya

ฉันจะใช้--type fuseblkเพื่อสิ่งนั้น
Pandya

@Pandya นั่นคือสิ่งที่ฉันระบุคุณจะต้องเพิ่มประเภทอื่น ๆ ที่คุณ intrested ฉันไม่ได้มีพาร์ทิชัน ntfs ในระบบของฉันเป็นเวลาหลายปีดังนั้นฉันไม่แน่ใจว่าที่มาจากนามแฝงที่ฉันใช้ .
Anthon

1
@Pandya ดูเหมือนว่า--type ntfsเป็นนามแฝงของฉันตั้งแต่เวลาที่มีการสนับสนุน NTFS น้อยที่สุด (เวลาที่คุณต้องทำการตรวจสอบระบบไฟล์บนพาร์ติชัน NTFS ของคุณหลังจากรีบูตเป็น Windows% -) อัปเดตคำตอบของฉันขอบคุณ
Anthon

3

คุณสามารถกำหนดฟังก์ชั่นดังต่อไปนี้:

function df1() { df "$@" | grep -E '^/'; }

ตัวอย่างผลลัพธ์:

$ df1 -h
/dev/sda8        25G  8.1G   16G  35% /
/dev/sda4        25G   20G  5.8G  78% /media/pandya/Documents+Edu
/dev/sda3       9.5G  7.1G  2.0G  79% /media/pandya/Ext4
/dev/sda7        24G   17G  6.9G  71% /media/pandya/Extra+Other
/dev/sda6        26G   25G  448M  99% /media/pandya/Media+Game
/dev/sda10       15G  7.9G  7.1G  53% /media/pandya/Miscellaneous
/dev/sda5        36G   22G   14G  63% /media/pandya/Software+OS

ที่นี่$@ให้คุณใส่อาร์กิวเมนต์ของคุณ! [โปรดทราบว่า$@ควรเขียนด้วยเครื่องหมายอัญประกาศคู่เว้นเสียแต่ว่าคุณจะมีเหตุผลที่ชัดเจน -ed]


3

หากการสลับไปใช้dfตัวเลือกอื่นเป็นตัวเลือกให้ใช้pydfแทนเนื่องจากจะไม่แสดงระบบไฟล์ที่มีค่าเริ่มต้น 0 บล็อกและมีมาตรวัดสีและคุณสมบัติอื่น ๆ ที่เปิดใช้งานโดยค่าเริ่มต้น มันใช้นามแฝงได้ค่อนข้างดีdfและต้นฉบับมีให้ใช้\dfเสมอ


สำหรับฉันคำตอบที่มีประโยชน์ที่สุดที่นี่ mountน่าเศร้าที่นี้ไม่ได้มีอยู่สำหรับ
emk2203

สายไปหน่อย แต่สำหรับฉัน pydf แสดงไดรฟ์ทางกายภาพเดียวและไดรฟ์ 33 / dev / loop ## เมื่อทั้งหมดที่ฉันต้องการคือไดรฟ์ทางกายภาพ คำตอบ df ที่ยอมรับนั้นใช้ได้ แต่ฉันชอบแบบฟอร์มนี้แทน: alias dfh = 'df -h -x squashfs -x tmpfs'
Steve Valliere

1

คำตอบนี้พยายามที่จะอยู่Yves ของเพ้อพกดังต่อไปนี้:

ฉันไม่ต้องการมีนามแฝงสำหรับชุดค่าผสมของตัวเลือกทุกตัว(1)

และ

แม้ว่ามันจะแสดง '/' เป็นสีแดง(2)

และ(3) เพิ่มชิ้นส่วนสำคัญของข้อมูลลงในเอาท์พุทที่แตกต่างกันซึ่งเป็นdfบรรทัดส่วนหัวที่เปลี่ยนแปลงตามธงที่ให้มา

(1) คุณต้องการfunctionเพราะตามคำนิยามมันต้องใช้อาร์กิวเมนต์ และมันง่ายมากในการกำหนดและใช้ตามที่คุณจะพบด้านล่าง

(2) สีแดง/ผลิตโดยgrep --colorซึ่งเป็นนามแฝงทั่วไปสำหรับgrepตัวเอง (คุณสามารถตรวจสอบได้โดยการเรียกใช้alias)

รหัส

function df1 
{ 
    df $* | sed -n '1p;/^\//p;'
}

บรรทัดใหม่ด้านบนมีจุดประสงค์เพื่อปรับปรุงความสามารถในการอ่านคุณสามารถแทนที่ช่องว่างได้

~/.bashrcคัดลอกและวางตัวอย่างข้อมูลโดยตรงกับเซสชั่นทุบตีโต้ตอบหรือดียิ่งขึ้นผนวกที่คุณ

ตัวอย่างการใช้งาน

$ df1 
Filesystem                        1K-blocks      Used Available Use% Mounted on
/dev/disk1                        487358464 316093104 171009360  65% /
/dev/disk2                           524032    302620    221412  58% /Volumes/Packer

$ df1 -hT
Filesystem                        Type   Size  Used Avail Use% Mounted on
/dev/disk1                        hfs    465G  302G  164G  65% /
/dev/disk2                        hfs    512M  296M  217M  58% /Volumes/Packer

$ df1 -hT .
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/disk1     hfs   465G  302G  164G  65% /

มันทำอะไร

ฟังก์ชั่นจะdf1เรียกใช้dfด้วยอาร์กิวเมนต์อะไรก็ตามที่คุณส่งผ่านและไพพ์( |) เอาต์พุตไปยังsedซึ่งถูกเรียกใช้ด้วย-nเพื่อยับยั้งการพิมพ์พื้นที่รูปแบบโดยอัตโนมัติ ส่วนที่เหลือเป็นการแสดงออกถึง "สคริปต์" sed สองอันที่จริงแล้ว:

  1. สคริปต์1pพิมพ์บรรทัดที่ 1 ซึ่งในกรณีของเราคือdfส่วนหัว (ฉันใช้เหมือนกันกับการpsวางท่อ)
  2. สคริปต์/^\//pตรงกับบรรทัดใด ๆ ที่ขึ้นต้นด้วย/จากนั้นพิมพ์
  3. ; แยก 2 sed script

0

alias df='df -hT -xtmpfs -xdevtmpfs'ฉันใช้

ค่อนข้างแย่มากที่คุณต้องใช้นามแฝงเพื่อทำให้ GNU dfใช้งานได้จริงบน Linux ในปัจจุบัน ควรมีตัวเลือกให้แสดงเฉพาะระบบไฟล์ "ของจริง" (อะไรก็ตามที่มีความหมาย)

ในความเป็นจริงdf -hxtmpfsใช้เวลาส่วนใหญ่ของอึออกและยังคงใช้งานได้โดยไม่มีนามแฝง ไม่เลวร้ายไปกว่าnetstat -tulnpนั้นอีกแล้ว ... ถอนหายใจ *


0

การอ่าน man mount

การแสดงรายการที่เมาท์
โหมดการแสดงรายการนั้นได้รับการดูแลเพื่อความเข้ากันได้แบบย้อนหลังเท่านั้น สำหรับการใช้งานเอาต์พุตที่แข็งแกร่งและปรับแต่งfindmnt(8)ได้โดยเฉพาะในสคริปต์ของคุณ

แสดงให้ฉันเห็นอีกวิธีหนึ่งเพื่อให้ได้ผลลัพธ์ที่ต้องการ

ฉันสร้างฟังก์ชั่น lsmounts

lsmounts () {
  findmnt -D -t nosquashfs,notmpfs,nodevtmpfs
}

คำอธิบายสำหรับข้อโต้แย้ง:

  • -D: ให้ผลลัพธ์เหมือนที่เรารู้ df
  • -t: เลือกประเภทของระบบไฟล์ที่คุณต้องการดู การเตรียมการnoไม่รวมระบบไฟล์ที่กล่าวถึง

ดังนั้นฉันจะได้รับผลลัพธ์ที่ต้องการ

SOURCE                       FSTYPE   SIZE   USED  AVAIL USE% TARGET
/dev/mapper/vgubuntu-lvroot  ext4    78,3G  42,5G  31,7G  54% /
/dev/mapper/vgubuntu-lvhome  ext4   284,5G 146,4G 124,5G  51% /home
...
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.