Это то, что в итоге сработало для меня с использованием tmux 2.2 и установкой xclip. Для копирования в стиле Vim добавьте следующее в .tmux.conf
bind Escape copy-mode
bind -t vi-copy 'v' begin-selection
bind -t vi-copy 'y' copy-selection
# Vim style copy to clipboard
bind-key -t vi-copy y copy-pipe "xclip -selection c > /dev/null"
bind-key p run "xclip -o -sel clip | tmux load-buffer - ; tmux paste-buffer"
Здесь, когда в режиме копирования, PREFIX v начинает выделение, а PREFIX y копирует в буфер обмена. PREFIX p можно использовать для вставки в терминал.
На странице POSIX указано:
ibs = expr
Укажите размер входного блока в байтах по выражению (по умолчанию 512).
obs = expr
Укажите размер выходного блока в байтах по expr (по умолчанию 512).
bs = expr
Установить размеры входных и выходных блоков равными байтам expr, заменяя ibs = и obs = . Если не указано иное преобразование, кроме sync, noerror и notrunc, каждый входной блок должен копироваться в выходной как единый блок без агрегирования коротких блоков.
Linux dd
работает точно так же. Таким образом, используйте вместо ibs
:
dd if=/dev/zero of=./foo count=1 ibs=1 obs=9 seek=1
Ваша команда dd if = / dev / zero of =. / Foo count = 1 bs = 1 obs = 9 seek = 1
создает двухбайтовую файл, а не 10-байтовый файл из-за плохо определенного взаимодействия между bs
и obs
.(Назовите это программной ошибкой, если хотите, но ее, вероятно, лучше определить как ошибку документации.) Вы должны использовать либо bs
, либо ibs
и obs.
.
Эмпирически выяснилось, что bs
переопределяет obs
, поэтому выполняется dd if = / dev / zero of =. / Foo count = 1 bs = 1 seek = 1
, который создает двухбайтовый файл, как вы видели.
Если бы вы использовали dd if = / dev / zero of =. / Foo count = 1 ibs = 1 obs = 9 seek = 1
, вы бы получили 10-байтовый файл, как и ожидалось.
В качестве альтернативы, если вы хотите создать пустой файл, который не занимает места для данных на диске, вы можете использовать неожиданно названную команду truncate
:
truncate --size=10 foo