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)
và
mặc dù nó hiển thị '/' màu đỏ (2)
và (3)
thêm một phần thông tin quan trọng vào đầu ra khác nhau, đó là df
dò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 grep
chính nó (bạn có thể kiểm tra bằng cách chạy alias
).
mã
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 df1
gọi df
vớ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ế:
- tập lệnh
1p
in dòng thứ 1, trong trường hợp của chúng tôi là df
tiêu đề (tôi sử dụng tương tự cho ps
đường ống),
- tập lệnh
/^\//p
khớp với bất kỳ dòng nào bắt đầu bằng /
, sau đó in nó
;
tách 2 tập lệnh sed
df --type ntfs
không hiển thị phân vùng 5 ntfs và do đó bỏ qua kết quả cho tôi