chỉ hiển thị các đĩa vật lý khi sử dụng df và mount


9

Khi tôi sử dụng dfhoặc mount, hầu hết tôi đều quan tâm đến các phân vùng đĩa vật lý. Ngày nay, đầu ra của các lệnh đó bị tràn ngập bởi các hệ thống tệp tạm thời và ảo, các nhóm và các thứ khác mà tôi không quan tâm một cách thường xuyên.

Các phân vùng vật lý của tôi ở đầu ra luôn bắt đầu bằng ' /', vì vậy tôi đã thử tạo bí danh cho dfmount:

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

Điều đó hoạt động tốt mount1(mặc dù nó hiển thị ' /' màu đỏ), nhưng df1đôi khi tôi muốn thêm -htùy chọn này dfvà không thể thực hiện df1 -h. Tôi muốn không có bí danh cho mọi kết hợp tùy chọn mà tôi có thể muốn sử dụng. Tôi có thực sự phải xem xét việc xác định các hàm trong bash (tôi không muốn)? Có một giải pháp tốt hơn cho df1?

Câu trả lời:


6

Bạn có thể giải quyết df1vấn đề đối số bằng cách sử dụng bí danh sau:

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

đảm bảo thêm bất kỳ loại nào khác ( xfs, fuseblk(để hỗ trợ NTFS hiện đại, như @Pandya đã chỉ ra), v.v.) mà bạn quan tâm. Với điều đó bạn có thể làm df1 -hvà nhận được kết quả mong đợi.

mountkhông có -ttùy chọn nhưng bạn không thể chỉ định nó nhiều lần (chỉ thực hiện lần cuối), ở đó tôi sẽ sử dụng:

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

Tôi đang sử dụng grep -Enhư egrepbị phản đối và sử dụng /bin/grepđảm bảo rằng bạn không sử dụng --colour=autotừ bí danh cho grep/egrep


df --type ntfskhông hiển thị phân vùng 5 ntfs và do đó bỏ qua kết quả cho tôi
Pandya

Tôi sẽ sử dụng --type fuseblkcho điều đó
Pandya

@Pandya đó là những gì tôi đã chỉ ra, bạn cần thêm các loại khác mà bạn đã tham gia. Tôi đã không có phân vùng ntfs trong hệ thống của mình trong vài năm, vì vậy tôi không chắc chắn nó đến từ đâu trong bí danh mà tôi sử dụng .
Anthon

1
@Pandya trông giống như --type ntfstrong bí danh của tôi từ thời có hỗ trợ NTFS tối thiểu (thời gian bạn phải kiểm tra hệ thống tệp trên phân vùng NTFS sau khi khởi động lại vào Windows% -)). Cập nhật câu trả lời của tôi, cảm ơn.
Anthon

3

Bạn có thể định nghĩa hàm như sau:

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

Ví dụ đầu ra:

$ 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

Ở đây $@cho phép bạn nhập các đối số của bạn! [Lưu ý rằng $@phải luôn được viết trong dấu ngoặc kép trừ khi bạn không có lý do cụ thể. -ed]


3

Nếu chuyển sang một dftùy chọn khác là một tùy chọn, pydfthay vào đó, hãy sử dụng vì nó không hiển thị các hệ thống tệp có 0 khối theo mặc định và có thước đo, màu sắc và một số thuộc tính khác được bật theo mặc định. Nó hoạt động khá bí danh df, và bản gốc luôn có sẵn bằng cách sử dụng \df.


Đối với tôi câu trả lời hữu ích nhất ở đây. Đáng buồn thay, điều này không tồn tại cho mount.
emk2203

Hơi muộn một chút, nhưng đối với tôi pydf đã cho thấy ổ đĩa vật lý duy nhất của tôi và ổ đĩa ## 33 / dev / loop ## khi tất cả những gì tôi muốn là ổ đĩa vật lý. Câu trả lời df được chấp nhận hoạt động, nhưng tôi thích hình thức này hơn: alias dfh = 'df -h -x squashfs -x tmpfs'
Steve Valliere

1

Câu trả lời này cố gắng giải quyết các mối bận tâm sau đây của yves :

Tôi muốn không có bí danh cho mọi kết hợp tùy chọn (1)

mặc dù nó hiển thị '/' màu đỏ (2)

(3) thêm một phần thông tin quan trọng vào đầu ra khác nhau, đó là dfdòng tiêu đề thay đổi theo các cờ được cung cấp.

(1) Bạn cần function, bởi vì theo định nghĩa, nó cần các đối số. Và, rất đơn giản để xác định và sử dụng như bạn sẽ tìm hiểu bên dưới.

(2) màu đỏ /được tạo ra bởi grep --color, đó là một bí danh phổ biến cho grepchính nó (bạn có thể kiểm tra bằng cách chạy alias).

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

Các dòng mới ở trên nhằm cải thiện khả năng đọc, bạn có thể thay thế chúng bằng không gian.

Sao chép và dán đoạn mã này trực tiếp vào phiên bash tương tác hoặc, thậm chí tốt hơn, nối nó vào của bạn ~/.bashrc.

Ví dụ sử dụng

$ 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% /

Những gì nó làm

Hàm df1gọi dfvới bất kỳ đối số nào bạn chuyển qua nó và dẫn ( |) đầu ra tới sed, được gọi -nđể ngăn chặn in tự động không gian mẫu. Phần còn lại thể hiện "kịch bản" sed, hai thực tế:

  1. tập lệnh 1pin dòng thứ 1, trong trường hợp của chúng tôi là dftiêu đề (tôi sử dụng tương tự cho psđường ống),
  2. tập lệnh /^\//pkhớp với bất kỳ dòng nào bắt đầu bằng /, sau đó in nó
  3. ; tách 2 tập lệnh sed

0

Tôi sử dụng alias df='df -hT -xtmpfs -xdevtmpfs'.

Ngày nay, bạn phải sử dụng một bí danh để làm cho GNU dfthực sự có thể sử dụng được trên Linux hiện nay. Cần có một tùy chọn để chỉ hiển thị các hệ thống tập tin "thực" (bất kể điều đó có nghĩa là gì).

Theo cách khác, df -hxtmpfslấy hầu hết các crap ra và vẫn có thể sử dụng mà không có bí danh. Không thực sự tệ hơn netstat -tulnpvà như vậy ... * thở dài *


0

đọc hiểu man mount

Liệt kê các giá trị
Chế độ liệt kê được duy trì để chỉ tương thích ngược. Để sử dụng đầu ra mạnh mẽ hơn và tùy biến findmnt(8), đặc biệt là trong các tập lệnh của bạn.

chỉ cho tôi một cách khác để có được chính xác đầu ra mong muốn.

Tôi đã tạo một chức năng lsmounts

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

Giải thích cho các đối số:

  • -D: cung cấp đầu ra như chúng ta biết df
  • -t: chọn loại hệ thống tệp bạn muốn xem. Chuẩn bị nokhông bao gồm các hệ thống tập tin được đề cập.

Vì vậy, tôi nhận được đầu ra mong muốn

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
...
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.