Ничего из вышеперечисленного.
Размер блока связан с параметрами файловой системы, выбранными во время mkfs, и его можно узнать, выполнив stat()
для файла. Он не имеет отношения к базовому блочному устройству, на котором хранится файловая система (, если таковая имеется ).
Например, с GNUstat
:
$ /usr/bin/stat. | grep IO.Block
Size: 71680 Blocks: 144 IO Block: 2048 directory
Если вы предпочитаете более программный вид, системный вызов stat()
можно сделать в perl
с:
$ perl -e '@x=stat("."); print $x[11]'
2048
В обоих случаях мы получаем "2048" в качестве ответа для этой файловой системы.
Мы можем это проверить:
$ truncate -o -s 1 foo
$ ls -l foo
-rw-r--r-- 1 sweh sweh 2048 Sep 17 10:28 foo
Разные файловые системы могут иметь разные размеры блоков. например, на моей машине я заставил диск /news
использовать меньшие размеры блоков, потому что он хранит в основном файлы меньшего размера
$ perl -e '@x=stat("/"); print $x[11]'
4096
$ perl -e '@x=stat("/news"); print $x[11]'
2048
Для файловых систем Linux extx
это делается с помощью mke2fs
с флагом -b
:
-b block-size
Specify the size of blocks in bytes. Valid block-size values
are 1024, 2048 and 4096 bytes per block. If omitted, block-size
is heuristically determined by the filesystem size and the
expected usage of the filesystem (see the -T option). If block-
size is preceded by a negative sign ('-'), then mke2fs will use
heuristics to determine the appropriate block size, with the
constraint that the block size will be at least block-size
bytes. This is useful for certain hardware devices which
require that the blocksize be a multiple of 2k.
urxvt
, tmux
и screen
— это три разных эмулятора терминала, первый использует X11 в качестве серверной части для отображения/ввода, а два других используют хост-терминал.
tmux
и screen
на самом деле являются эмуляторами терминала, они реализуют ряд функций (, таких как атрибуты жирного шрифта, очистка экрана... )активируются с помощью некоторых escape-последовательностей, но настраивают фоновое изображение не входит в число функций, которые они поддерживают.
Также помните, что сеанс screen
/tmux
может быть подключен к хост-терминалу любого типа, даже к нескольким одновременно (с -x
), некоторые могут поддерживать эту функцию, некоторые нет.
screen
будет передавать escape-последовательности, которые он не распознает, tmux
— нет. Последовательности, начинающиеся с OSC (\e]
), заканчиваются на BEL (\a
/^G
). Когда tmux
встречает \e]
, он читает до\a
(или следующей escape-последовательности ), и если он не распознает эту последовательность, он просто отбрасывает ее.
Однакоtmux
поддерживает дословную передачу произвольного текста на хост-терминал (с)с последовательностью \ePtmux;\e<text>\e\
. Так что здесь вы можете сделать:
printf '\ePtmux;\e\e]20;/home/alexsson/Downloads/alternativ.png;\a\e\\'
В любом случае обратите внимание, что это довольно опасная особенность rxvt
. Например, если вы запустите rxvt
как root в Linux и запустите cat malicious-file
с этим файлом, содержащим что-то вроде\e]20;/dev/watchdog\a
(в системах, где доступен сторожевой таймер ), это перезагрузит вашу систему через несколько секунд.