Скопируйте прямоугольный блок в основной выбор из экранной сессии

Проблема здесь с форматом, TAR (Ленточный архив), формат разработан для последовательного доступа, не произвольного доступа. И gzip является хорошим дополнением к tar, так как это - формат сжатия на основе потоков, также не для произвольного доступа.

Таким образом, инструмент высокого уровня, который не взаимодействует со сжатыми блоками непосредственно, должен будет проанализировать через весь файл каждый раз, когда он должен считать что-либо, сначала для получения Вас список файлов, затем возможно, кэш делает недействительным, и он читает его снова, и затем для каждого файла Вы копируете от него, мог бы прочитать его снова. Можно сделать инструмент, который помнит положение каждого файла, и какие блоки это должно распаковать для получения его, но кажется, что немногие обеспокоились этим.

Если Вы хотите, чтобы это пошло быстрее, сделайте a tar tzf file.tar.gz > filelist, открытый, что список файлов в энергии, gedit или что бы то ни было, удаляет строки файлов, с которыми Вы не нуждаетесь, сохраняете и затем извлекаете их tar xzf file.tar.gz -T filelist -C extracted/.

Для получения произвольного доступа к сжатому файлу необходимо использовать, возможно, zip с posix расширениями, rar, или как dru8274 предложенный, squashfs, или даже ZFS со сжатием, включенным, или btrfs, если btrfs заставил сжатие работать во время чтения.

4
14.01.2015, 00:18
3 ответа

Я рекомендую интерактивно выбрать прямоугольный блок.

HOLD CTRL + Нажмите левую кнопку мыши в верхнем левом углу скопированного блока, а затем (все еще удерживая) переместить курсор в правый правый угол. Ваш прямоугольный блок должен быть скопирован. Вы можете вставить его со средней кнопкой мыши, где вам нравится.

1
27.01.2020, 20:57

xsel можно использовать xsel, чтобы получить буфер в буфер обмена дисплеев , как описано здесь на Stackoverflow:

Шаги в Linux с помощью xsel следующие:

  1. Скопируйте текст из сеанса работы с экраном в буфер копирования экрана GNU.
  2. Выполните эту команду в пределах экрана: cat | xsel -b
  3. Если xsel не сообщил об ошибке, теперь сбросьте буфер копий экрана в STDIN: Ctrl+a+]
  4. Отправьте EOF на cat для его завершения: Ctrl+d

В этот момент содержимое буфера копирования экрана должно находиться в твой буфер обмена.

1
27.01.2020, 20:57

У меня есть специальный ключ для копирования выбора экрана к X выделению X, используя Xsel:

bind b eval writebuf 'exec /bin/sh -c " xsel -i < /tmp/screen-exchange"' 'exec /bin/sh -c "killall xsel"'

Я скопировал откуда-то, но я не помню, где сейчас.

1
27.01.2020, 20:57

Теги

Похожие вопросы