Ta odpowiedź próbuje rozwiązać następujące problemy Yves :
Wolałbym nie mieć aliasu dla każdej kombinacji opcji (1)
i
chociaż pokazuje „/” na czerwono (2)
i (3)
dodać ważną informację do zmieniającego się wyniku, który jest df
linią nagłówka zmieniającą się zgodnie z dostarczonymi flagami.
(1) Potrzebujesz function
, ponieważ z definicji wymaga argumentów. I jest to bardzo proste do zdefiniowania i użycia, jak dowiesz się poniżej.
(2) czerwony /
jest produkowany przez grep --color
, co jest wspólnym aliasem dla grep
siebie (możesz to sprawdzić, uruchamiając alias
).
kod
function df1
{
df $* | sed -n '1p;/^\//p;'
}
Powyższe nowe wiersze mają na celu poprawę czytelności, możesz je zastąpić spacją.
Skopiuj i wklej ten fragment bezpośrednio do interaktywnej sesji bash lub, jeszcze lepiej, dołącz go do swojego ~/.bashrc
.
Przykładowe użycie
$ 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% /
Co to robi
Funkcja df1
wywołuje df
dowolne argumenty, które przekazujesz, i potoki ( |
) generują dane wyjściowe sed
, które są wywoływane w -n
celu powstrzymania automatycznego drukowania przestrzeni wzorców. Reszta wyraża „skrypty” sed, dwa właściwie:
- skrypt
1p
wypisuje pierwszą linię, która w naszym przypadku jest df
nagłówkiem (używam tego samego do ps
pipingu),
- skrypt
/^\//p
dopasowuje dowolny wiersz zaczynający się od /
, a następnie go drukuje
;
oddziela 2 skrypty sed
df --type ntfs
nie pokazuje partycji 5 NTFS i dlatego pomija je w wynikach dla mnie