Как я могу удалить конкретный файл с помощью командной строки?

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


После долгого чтения я понял вот что.

  • Есть ли у ptmx какая-либо цель, кроме выделения подчиненной части? Предоставляет ли он какой-то «интеллект», или эмулируемый терминал (например, xterm) обладает всем интеллектом, чтобы вести себя как терминал?

    / dev / ptmx не выделяет подчиненную часть : он выделяет «ведущую часть псевдотерминала». / dev / ptmx не является главным псевдотерминалом : это главный мультиплексор псевдотерминала . Он был создан в соответствии со стандартом Unix98 PTY, чтобы избежать состояний гонки при выделении главного псевдотерминала ( источник ).

    Мастер-часть (ptm) псевдотерминала не представлена ​​в файловой системе. Он представлен дескриптором файла.

    Подчиненная часть (pts) представлена ​​файлом в / dev / pts / N , где N - это число.

    Очки получаются из ptm через последовательный вызов grandpt , unlockpt , ptsname . ( Источник )

    Ptm заменяет драйвер AUR, предназначенный для связи с устройством, и линейную версию. Таким образом, он никоим образом не эмулирует терминал, но предоставляет функции линейной версии и предоставляет способ визуализации и взаимодействия с pts.( Источник )

    Вот график того, что было TTY, подключенным к аппаратному устройству TTY communication with AUR

    А вот график tty, подключенного к ptm {{1} } TTY communication with PTM

    Файл ptm обрабатывает аргументы Ioctl (ISPTM, UNLKPT, TIOCREMOTE, TIOCSIGNAL), отличные от аргументов pts.

  • Почему xterm должен взаимодействовать с ведущей частью, поскольку он пересылает только stdout и stdin ведомой части? Почему он не может напрямую писать и читать из файла pts?

    Процессы взаимодействуют с устройствами посредством действий, выполняемых с виртуальным файлом (чтение, запись, ioctl ..). Самого файла не существует, и драйвер использует файл для запуска действий при вызове методов чтения или записи. (См. Приложение для информации о драйверах)

    TTY определяет точный способ взаимодействия с ним. Процессы записывают и читают с устройства и ожидают одинакового поведения независимо от того, какой тип TTY реализован.

    • функция чтения используется процессами для чтения записей из терминала
    • функция записи используется процессами для отправки вывода на терминал

    точки ведут себя как Драйвер TTY. Его методы чтения и записи используются для реализации поведения драйвера TTY. Поскольку реального устройства для отправки данных нет, создается потоковая пара, и ptm реализует функцию чтения для чтения данных, отправленных pts в поток и функцию записи для отправки данных в поток, которые будут доступны, когда pts прочитают их.

    Помните, что файл, представляющий устройство, не является классическим файлом, и если xterm хочет увидеть, что было записано в файл, он не может просто вызвать его и прочитать, поскольку эти функции здесь совсем другое поведение.

  • Всегда ли идентификатор сеанса прикреплен к одному файлу pts и наоборот? Могу ли я ввести команду ps и найти 2 идентификатора сеанса для одного и того же / dev / pts / X?

    Я так не думаю, идентификатор сеанса определяется первым процессом, который присоединяет pts (обычно bash), а я не вижу возможности создать еще один сеанс и привязать его к тем же точкам. Может быть, такой инструмент, как socat , сможет это сделать?

  • Какую еще информацию хранит pts? Обновляет ли Xterm все поля самостоятельно, или ptm добавляет ему "интеллекта"?

    Pts хранит 2 категории информации о терминале, с которым он взаимодействует: Terminfo и Termcap . Обычно многие эмуляторы терминала основаны на библиотеке, которая управляет для них информацией termcap (которая предоставляет все значения возможностей, например, для эмуляции VTX100). Примером такой библиотеки является libvte . Изменить (см. Комментарий Стефана Чазеласа): возможности терминала не хранятся в pts.

Приложение

0
27.02.2019, 00:24
2 ответа

Просто используйте команду rmи передайте относительный или абсолютный путь в качестве параметра, например.

$ rm your_file_name.txt

или

$ rm /home/craig/your_file_name.txt
1
28.01.2020, 02:30

Пожалуйста, используйте команду rm.

Дополнительную информацию можно найти на справочных страницах -с man rm.

1
28.01.2020, 02:30

Теги

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