wyświetlaj tylko dyski fizyczne podczas używania df i mount


9

Kiedy używam dflub mount, najbardziej interesują mnie fizyczne partycje dysku. Obecnie dane wyjściowe tych komend są przytłoczone tymczasowymi i wirtualnymi systemami plików, grupami i innymi rzeczami, którymi nie jestem zainteresowany regularnie.

Moje fizyczne partycje na wyjściu zawsze zaczynają się od „ /”, więc próbowałem utworzyć aliasy dla dfi mount:

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

Działa to OK mount1(choć pokazuje „ /” na czerwono), ale df1czasami chciałbym dodać -hopcję dfi nie mogę tego zrobić df1 -h. Wolałbym nie mieć aliasu dla każdej kombinacji opcji, której chciałbym użyć. Czy naprawdę muszę analizować definiowanie funkcji w bash (wolałbym tego nie robić)? Czy istnieje lepsze rozwiązanie df1?

Odpowiedzi:


6

Możesz rozwiązać problem z df1argumentami, używając następującego aliasu:

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

upewnij się, aby dodać dowolny inny typ ( xfs, fuseblk(dla nowoczesnego wsparcia NTFS, jak @Pandya wskazał), etc), które Cię interesują. Z tym można zrobić df1 -hi uzyskać oczekiwany rezultat.

mountma -topcję, ale nie można jej podać wiele razy (pobierana jest tylko ostatnia), użyłbym tam:

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

Używam grep -Etak, jak egrepjest przestarzałe, a używanie /bin/grepzapewnia, że ​​nie używasz --colour=autoaliasu dla grep/egrep


df --type ntfsnie pokazuje partycji 5 NTFS i dlatego pomija je w wynikach dla mnie
Pandya

Mam użyć --type fuseblkdo tego
Pandya

@ Pandya, to jest to, co wskazałem, musisz dodać inne typy, którymi jesteś zainteresowany. Nie mam partycji NTFS w moim systemie od kilku lat, więc nie jestem pewien, skąd to się wzięło w używanym przeze mnie aliasie .
Anthon

1
@ Pandya wygląda na to, że --type ntfsbyło to w moim aliasie od czasu, gdy obsługa NTFS była minimalna (czas, w którym trzeba było sprawdzić system plików na partycji NTFS po ponownym uruchomieniu do systemu Windows% -)). Zaktualizowałem moją odpowiedź, dzięki.
Anthon

3

Możesz zdefiniować funkcję w następujący sposób:

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

Przykładowe dane wyjściowe:

$ 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

Tutaj $@możesz wprowadzić swoje argumenty! [Uwaga: $@należy zawsze pisać w cudzysłowie, chyba że masz konkretny powód, aby tego nie robić. -ed]


3

Jeśli przełączenie na inną dfjest opcją, użyj pydfzamiast tego, ponieważ nie pokazuje ona systemów plików domyślnie posiadających 0 bloków i ma domyślnie włączony wskaźnik, kolory i niektóre inne właściwości. Działa dość dobrze alias df, a oryginał jest zawsze dostępny przy użyciu \df.


Dla mnie najbardziej przydatna odpowiedź tutaj. Niestety, to nie istnieje mount.
emk2203

Trochę późno, ale dla mnie pydf pokazał mój pojedynczy dysk fizyczny i dyski 33 / dev / loop ##, gdy wszystko, czego chcę, to dysk fizyczny. Akceptowana odpowiedź df działa, ale wolę ten formularz: alias dfh = 'df -h -x squashfs -x tmpfs'
Steve Valliere

1

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 dflinią 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 grepsiebie (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 df1wywołuje dfdowolne argumenty, które przekazujesz, i potoki ( |) generują dane wyjściowe sed, które są wywoływane w -ncelu powstrzymania automatycznego drukowania przestrzeni wzorców. Reszta wyraża „skrypty” sed, dwa właściwie:

  1. skrypt 1pwypisuje pierwszą linię, która w naszym przypadku jest dfnagłówkiem (używam tego samego do pspipingu),
  2. skrypt /^\//pdopasowuje dowolny wiersz zaczynający się od /, a następnie go drukuje
  3. ; oddziela 2 skrypty sed

0

Używam alias df='df -hT -xtmpfs -xdevtmpfs'.

Prawie szkoda, że ​​musisz użyć aliasu, aby GNU dfrzeczywiście działało w Linuksie. Powinna istnieć opcja wyświetlania tylko „prawdziwych” systemów plików (cokolwiek to oznacza).

W rzeczywistości usuwa df -hxtmpfswiększość bzdur i pozostaje użyteczny bez aliasu. Nie bardzo gorzej niż netstat -tulnpi takie ... * westchnienie *


0

Czytanie man mount

Wyświetlanie montowań
Tryb wyświetlania jest utrzymywany tylko dla kompatybilności wstecznej. Aby uzyskać bardziej niezawodne i konfigurowalne wykorzystanie danych wyjściowych findmnt(8), szczególnie w skryptach.

pokazał mi inny sposób na uzyskanie dokładnie pożądanego wyniku.

Stworzyłem funkcję lsmounts

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

Objaśnienie argumentów:

  • -D: dostarczaj dane wyjściowe tak, jak je znamy df
  • -t: wybierz typy systemów plików, które chcesz zobaczyć. Wyprzedzanie nowyklucza wspomniane systemy plików.

Otrzymuję więc pożądaną moc wyjściową

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
...
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.