Как подключить к виртуальному/dev/ttyX от тех же машин pts терминал?

Это - код, который я только примерно протестировал, но мог бы расположение подход для Вас для взятия. Принятие Вас имеет файл, ignore.txt как это:

1/
2/

Демонстрационные данные

И у меня были демонстрационные каталоги с файлами в них как это:

$ mkdir -p dirs/{1..5}
$ touch dirs/{1..5}/afile

Получающийся в этом:

$ tree dirs/
dirs/
|-- 1
|   `-- afile
|-- 2
|   `-- afile
|-- 3
|   `-- afile
|-- 4
|   `-- afile
`-- 5
    `-- afile

Пример выполняется

Теперь, если мы выполняем эту команду против этого дерева:

$ find dirs/ -type f -print0 | fgrep -zFvf ./ignore.txt
dirs/5/afiledirs/4/afiledirs/3/afile

Мы видим, что только возвращаем файлы, которые находятся в каталогах, не перечисленных в ignore.txt.

Таким образом, мы можем добавить a rm в конец удалить неисключенные файлы.

$ find dirs/ -type f -print0 | fgrep -zFvf ./ignore.txt | xargs -0 rm -f

Проверка мы видим, что она работала:

$ tree dirs/
dirs/
|-- 1
|   `-- afile
|-- 2
|   `-- afile
|-- 3
|-- 4
`-- 5

Проблемы, которые будут разработаны

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

Некоторое блокирование могло быть помещено вокруг строк так, чтобы они были привязаны на начале или конце строки для защиты их.

Подробнее

Вышеупомянутые команды делают следующее:

  1. нахождение всех файлов в соответствии с каталогом dirs
  2. отфильтровывание любых файлов, которые находятся под каталогом, существующим в igonre.txt файл
  3. передача фильтра перечисляет через xargs к rm -f команда
3
02.01.2014, 11:27
1 ответ

Почему? :) Терминалы / dev / ttyX - это просто программные терминалы, предоставляемые ядром. Терминалы / dev / pts / * по сути являются трубами, подключенными к / dev / ptmx , и, согласно man pts в моей ближайшей доступной системе RHEL6, Интерфейс у них идентичен. Если вы реализуете программу для замены терминального интерфейса, использование / dev / ptmx в любом случае является «правильным» способом сделать это. В системе Linux действительно отличается имя файла. Возможно, вы могли бы просто создать символическую ссылку с именем / dev / ttyX после создания pty , если имя файла действительно так важно.

Если ваша цель - удаленно управлять экраном, достигаемым нажатием Alt + F4 , например, просто измените / etc / iniitab , чтобы открыть свой альтернативная программа "дистанционного управления" на / dev / tty4 . Обычно он запускает mingetty, но нет причин, по которым вы не можете запускать там все, что хотите. Вы также можете посмотреть справочную страницу mingetty, чтобы узнать, что еще вы можете делать с mingetty; он способен на несколько интересных вещей.

2
27.01.2020, 21:28

Теги

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