показуйте лише фізичні диски при використанні df та mount


9

Коли я використовую dfабо mount, мене найбільше цікавлять розділи фізичного диска. Сьогодні вихід цих команд переповнюється тимчасовими та віртуальними файловими системами, групами та іншими речами, які мене регулярно не цікавлять.

Мої фізичні розділи у висновку завжди починаються з ' /', тому я спробував зробити псевдоніми для dfта mount:

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

Це працює нормально 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 це те, що я вказав, вам потрібно додати інші типи, які вас цікавлять. У мене в системі вже кілька років не було розділів ntfs, тож я не впевнений, звідки це взялося в псевдонімі, який я використовую .
Антон

1
@Pandya виглядає так, як це --type ntfsбуло в моєму псевдонімі з того часу, коли була мінімальна підтримка NTFS (час, коли вам довелося перевірити файлову систему на вашому розділі NTFS після перезавантаження в Windows% -)). Моя відповідь оновлена, спасибі
Антон

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

Тут $@ви можете ввести свої аргументи! [Зверніть увагу, що $@завжди слід писати в подвійних лапках, якщо у вас немає конкретних причин цього не робити. -ед]


3

Якщо перехід на інше df- це варіант, використовуйте pydfнатомість, оскільки він не показує файлові системи, що мають за замовчуванням 0 блоків, і має калібр, кольори та деякі інші властивості, включені за замовчуванням. Це працює досить добре df, але оригінал завжди доступний за допомогою \dfбудь-якого.


Тут для мене найкорисніша відповідь. На жаль, цього не існує mount.
emk2203

Трохи запізнився, але для мене pydf показав мій єдиний фізичний привід та 33 / dev / loop ## накопичувачі, коли все, що я хочу, це фізичний привід. Прийнята відповідь df працює, але я віддаю перевагу цій формі замість цього: псевдонім dfh = 'df -h -x squashfs -x tmpfs'
Стів

1

Ця відповідь намагається вирішити наступні заняття yves :

Я вважаю за краще не мати псевдонім для кожної комбінації варіантів (1)

і

хоча воно показує червоне значення "/" (2)

та (3) додати важливий фрагмент інформації до різного виводу, це dfрядок заголовка, який змінюється відповідно до наданих прапорів.

(1) Вам потрібно function, тому що за визначенням він бере аргументи. І це дуже просто визначити та використовувати, як ви дізнаєтесь нижче.

(2) червоний /утворюється grep --color, що є загальним псевдонімом grep(ви можете перевірити це, запустивши alias).

код

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

Наведені вище рядки призначені для поліпшення читабельності, ви можете замінити їх пробілом.

Скопіюйте та вставте цей фрагмент безпосередньо в інтерактивний сеанс bash або, ще краще, додайте його до свого ~/.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

0

Я використовую alias df='df -hT -xtmpfs -xdevtmpfs'.

dfНасправді багато чого гарно, що вам доведеться використовувати псевдонім, щоб зробити GNU фактично доступною для 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
...
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.