Чтобы Ваша команда обнаружила eof
, это должно читать из stdin. Таким образом, по-видимому, это ожидает некоторый вход. Таким образом, это походит на то, в чем Вы нуждаетесь, не пустой вход (/dev/null
точно предназначен для того), но введите, это никогда не прибывает.
Это может быть моделировано с каналом, куда никто никогда не собирается записать на другом конце как:
sleep 999999999 | the-command
Или избегать необходимости выполнять это дополнительное sleep
команда, это могло быть сделано с именованным каналом:
fifo=$(mktemp -u) &&
mkfifo "$fifo" &&
(rm "$fifo" && the-command <&3 3<&- &) 3<> "$fifo"
Здесь с помощью посреднического дескриптора файла для работы вокруг того, что оболочка подключает stdin с /dev/null
implicitely, когда Вы запускаете команду с &
(если Вы не добавляете явное stdin перенаправление как наш <&3
здесь).
На Linux (и вероятно только на Linux), можно также сделать:
the-command < /dev/fd/1 3>&1 > /dev/null | :
/dev/fd/1
то, где fd 1 подключен к каналу на Linux, ведет себя как именованный канал. Таким образом, при открытии его в режиме чтения Вы получаете конец чтения канала.
Таким образом выше, fd 0 будет подключен к концу чтения канала, другой конец которого находится на fd 3 the-command
. Поскольку the-command
движение ничего не должно писать на своем fd 3, любом read
попытка на fd 0 заблокируется (или чтение неблокирования возвратится с нет ничего для чтения все же, или выбор/опрос не возвратит ничего для чтения любого как the-command
вероятно, делает, если это делает что-либо еще, чем ожидание входа, который никогда не прибывает).
Если вы хотите, чтобы ВСЕ файлы сжимались таким образом, у меня есть небольшой сценарий, который я написал, чтобы сделать это. ...
Вышеуказанное работает только на моей
директории - но вы можете использовать его на чем угодно и на чем угодно. В нем также есть
-nоперанд, переданный в
shping 224.0.0.1
как есть, чтобы вы могли сами увидеть, что
sh
в настоящее время
не для файлов вчитаемом человеком формате
[115409] (вероятно, здесь это излишне, так как мы в любом случае удаляем это на следующем шаге) [115410], которые больше
1МБ
или
It
|pipes
его информация на
sed
которая снимает все перед ведущим
/, "цитирует"
|pipe
Опять же, он ничего не будет делать, пока действует
sh --no-execute
.
Я думаю, что некоторые [115429]очень [115430] недавние сборки
btrfs
Из того, что я прочитал, вы можете установить свойство compression
в корне подтома для достижения этого [0, 1]:
sudo btrfs property set /mnt/your-subvolume compression lzo
После захвата UUID вашего подтома Btrfs с помощью sudo btrfs filesystem show /mnt/your-subvolume
вы можете затем подтвердить, что функция сжатия LZO в настоящее время включена с помощью:
cat /sys/fs/btrfs/<UUID>/features/compress_lzo
Если он включен, он должен вернуть 1.
[0] https://btrfs.wiki.kernel.org/index.php/Compression
[1] https://www.berthon.eu/2016/setting-shared-folder-compression-on-synology-nas-btrfs/