узнайте размер открытого терминала

Я нашел подробное объяснение на этой странице. Надеюсь, что это работает на Вас!

http://code.google.com/p/jhu-lcsr-ros-pkg/wiki/UbuntuXenomai

13
19.04.2015, 03:32
3 ответа

Используйте tar : tar -cf my_big_folder.tar/my/big/folder

Восстановление архива с помощью tar -xf my_big_folder.tar -C/

-C приведет к изменению корневого каталога для восстановления архива, поскольку созданный выше архив содержит абсолютные пути.

EDIT : Из-за относительно большого размера архива лучше всего отправить его [непосредственно] в его конечное местоположение, используя SSH или точку подключения облачного ресурса/папки. Например, как предлагает Коул Джонсон :

tar -cf /network/mount/point/my_big_folder.tar /my/big/folder

или

tar -c /my/big/folder | ssh example.com "cat > my_big_folder.tar"

EDIT : Как также предлагает Blacklight Shining , Если вы хотите избежать абсолютных путей, вы можете изменить родителя большой папки и tar оттуда:

tar -cf /network/mount/point/my_big_folder.tar \
    -C /my/big/folder/location the_big_folder

или

tar -cC /my/big/folder/location the_big_folder | \
ssh example.com "cat > my_big_folder.tar"

Личные рефлексии

Включить относительные или

Есть случаи, когда абсолютные пути очевидны, например, для восстановления в катастрофу ситуации восстановления. Для локальных проектов или коллекций обычно архивировать дерево каталогов из родительского каталога нужной папки, чтобы не загромождать текущий каталог, если архив случайно распакован на месте. Если большая _ папка находится где-то глубоко в стандартной * иерархии NIX , может возникнуть необходимость начать архивирование первой нестандартной папки, от которой большая _ папка отклоняется, и ее дерева каталогов оттуда.

Наконец, педантично - tar члены архива являются всегда родственниками, поскольку a) они могут быть восстановлены в любом каталоге и b) tar удаляет ведущие / при создании архива. Я лично склонен всегда использовать -C при распаковке архива.

-121--36821-

netinet в настоящее время не является модулем ядра, поэтому я предлагаю вместо этого добавить измененный файл в sys/conf/files.

-121--174847-

При выполнении команды

stty size

возвращается размер текущего терминала в строках и столбцах. Пример:

$ stty size
24 80

Вы можете читать строки и столбцы в переменные так (благодаря комментарию Яниса ):

$ read myrows mycols < <(stty size)

Получение размера в пикселях требует знания разрешения экрана, и я не думаю, что stty имеет прямой доступ к такой информации.

19
27.01.2020, 19:53

В среде рабочего стола вы используете X, а утилита xwininfo может отображать размер окна в пикселях. Кроме того, если вы работаете на рабочем столе (и не подключены, например, удаленно), эмулятор терминала предоставляет переменную $ WINDOWID , которую вы можете использовать в качестве параметра для xwininfo , например,

xwininfo -id $WINDOWID

и получите листинг:

xwininfo: Window id: 0xc00025 "uxterm"

  Absolute upper-left X:  65
  Absolute upper-left Y:  167
  Relative upper-left X:  0
  Relative upper-left Y:  22
  Width: 624
  Height: 577
  Depth: 24
  Visual: 0x22
  Visual Class: TrueColor
  Border width: 1
  Class: InputOutput
  Colormap: 0x21 (installed)
  Bit Gravity State: NorthWestGravity
  Window Gravity State: NorthWestGravity
  Backing Store State: NotUseful
  Save Under State: no
  Map State: IsViewable
  Override Redirect State: no
  Corners:  +65+167  -589+167  -589-256  +65-256
  -geometry 103x42+65+145

В этом примере строки с шириной и высотой имеют размер в пикселях . Последняя строка с -геометрией дает размер в символов (а также положение левого верхнего угла - в пикселях).

Что касается изменения размера окна, программа resize показывает количество строк и столбцов. Для этого примера он показывает

$ resize
set noglob;
setenv COLUMNS '103';
setenv LINES '42';
unset noglob;

. В вопросе не указано, как можно использовать информацию, но, поскольку вывод представляет собой текст в предсказуемом формате, он легко создается сценарием. Вот простой пример использования awk:

#!/bin/sh
if [ -n "$WINDOWID" ]
then
    xwininfo -id $WINDOWID | awk '
    BEGIN { px = 0; py = 0; chars = "?x?"; }
    /Height:/ { py = $2; }
    /Width:/ { px = $2; }
    /-geometry/ { chars = $2; sub("+.*","",chars); }
    END { printf "%dx%d pixels, %s chars\n", py, px, chars; }'
else
    printf '? no WINDOWID found\n'
fi

, который печатает

577x624 pixels, 103x42 chars
1
27.01.2020, 19:53
tput cols; tput lines

Это отобразит столбцы и строки.

2
14.09.2021, 16:34

Теги

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