Необходимо смочь заставить это работать с FIFO и каналом.
$ mkfifo fifo
$ ./pgm2 < fifo | ./pgm1 > fifo
Вход two's программы является FIFO и выводами к каналу. Программа вход является каналом и выводами к FIFO.
Предупредите хотя: это очень колоритно в целом и может зайти в тупик, если "ping/вонь" между процессами не прекрасен.
См. также этот вопрос о Переполнении стека: Как перенаправить stdout 2-го процесса назад к stdin 1-го процесса?
Другой вариант - использовать lsblk -f
:
lsblk перечисляет информацию обо всех доступных или указанных блочных устройствах.
Это означает, что сетевые разделяемые ресурсы (nfs, sshfs) или виртуальные файловые системы (dev,run,sys,proc и т.д.) отображаются а не . Также, файловая система tmpfs
, которая обычно отображается в df -h
, не будет отображаться а не .
Опция -f
выводит информацию о файловых системах, которая включает точку монтирования -h.
на моей машине, например, в ней указано:
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
|-sda1 ext2 bootpar ab2e48a8-5f1c-484e-a4a1-f8545e4b2019 /boot
|-sda2 swap swappar 6e9f6e70-141a-417c-82a5-113a3d4c5a53 [SWAP]
`-sda3 ext4 homepar 52f7164d-fac7-4abe-bf78-71353fac7850 /home
sdb isw_raid_member
`-md126 ext4 rootparraid 4275f5ba-8244-4039-9100-06afee678557 /
sdc isw_raid_member
`-md126 ext4 rootparraid 4275f5ba-8244-4039-9100-06afee678557 /
sr0
Прежде всего, "болван", вероятно, не самый лучший термин - procfs
, sysfs
или dev(tmp)fs
далеко не бесполезны. Либо используйте опцию -t
(type) для -монтирования
и передайте ей список интересующих вас файловых систем, разделенный запятыми:
mount -t tmpfs,xfs
, либо используйте grep
для фильтрации того, что вам нужно (возможно grep -v
, чтобы показать то, что не совпадает):
mount | grep -Ev "(cgroup|proc|sysfs)"
DF
В GNU CORETILS имеет список игнорируемых типов файловой системы, но он не содержит много записей. По большей части он устраняет файловые системы, имеющие размер 0. Это обычно охватывает игнорируемые типы файловых систем в любом случае.
Установка
не имеет прямого доступа к размеру файловой системы. Чтобы получить ту же фильтрацию, вам нужно будет сопоставить вывод Mount
с выходом DF
или некоторый другой инструмент для получения размера файловой системы.
Вот способ получить отсортированный выход из DF
и , установлен
и сортировать и присоединиться к нему.
join -o 2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9 <(df -P | tail -n +2 | sort) <(mount | sort)
Вот еще один подход с питоном одноклассником. (Perl намного лучше на таких одноклассников, но не имеет statvfs
в своей стандартной библиотеке.)
mount | python -c 'import os, sys; [sys.stdout.write(line) for (dev, line) in [(line.split(" ")[2], line) for line in sys.stdin.readlines()] if os.statvfs(dev).f_blocks]'