Команда tee linux

3 ответа

Решение

Жестко закодированные решения

Эхо ничего и просто отправить его на несколько файлов с помощью команда.

Как это:

Все файлы в этом списке будут пустыми и будут созданы, если они не существуют.

Применительно к вашему ответу это будет:

В то время как считается лучшей практикой, чем , еще лучшим решением было бы использовать Как отметил Чарльз Даффи. В результате получается следующая команда:

Как ответил skrilled, это, вероятно, решение, которое вы изначально искали. Команда допускает произвольное количество аргументов имени файла. Вы можете легко использовать его следующим образом:

Что позволяет вам достичь своей цели без использования какой-либо трубы и в одной команде, довольно изящный ответ, предоставленный здесь skrilled.

Структурное решение имен файлов

Если у всех файлов есть структура по именам (например, java- файлам) и расположению, вы можете использовать команду find. В следующем примере я буду применять стирание ко всем а также исходные файлы в текущем каталоге и во всех каталогах внутри текущего каталога.

Разъяснение:

  • выполнять в текущем каталоге
  • уровень рекурсии, спуск к каталогам в каталоге, но не дальше (уровень 2). Установите это в 1, чтобы не спускаться или спускаться раз.
  • применяется только к файлам, а не к каталогам
  • применяется только к файлам, оканчивающимся на
  • усекать каждый найденный файл (имя файла хранится в )

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

Список файлов в отдельном файловом решении

Самое простое, что можно сделать, это хранить файлы для стирания в файле построчно. Если нет очевидной структуры в отношении их местоположения и имени, то есть.

Скажем, файлы хранятся в файле с именем ,

В этом примере мы удалим три файла, которые перечислены выше.

Объяснение:

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

Примечание: хотя этот метод сохраняет пробелы в пути, он не обрабатывает обратную косую черту и конечные пробелы, как отметил Чарльз Даффи. Один из способов решения обеих проблем — изменить цикл следующим образом:

Тем не менее, новые строки в именах файлов по-прежнему будут проблемой. Единственный способ обойти эту проблему — разделить имена файлов, используя нулевое завершение (). Правильный цикл теперь становится:

13

2015-06-18 23:55

Усечение также может использоваться для очистки файла.

4

2015-06-17 19:46

Вы можете сделать это довольно хорошо с GNU Parallel следующим образом:

2017-12-22 19:35

Работа с устройствами в Linux

Давайте проведем несколько экспериментов, которые помогут вам понять как работают устройства Linux и как ими управлять в этой операционной системе. Большинство дистрибутивов Linux имеют несколько виртуальных консолей, обычно от 1 до 7, которые могут использоваться для входа в сеанс командной оболочки. К этим виртуальным консолям можно получить доступ с помощью сочетаний клавиш Ctrl+Alt+Fn, например, Ctrl+Alt+F1 для первой консоли, Ctrl+Alt+F2 для второй и так далее.

Сейчас нажмите Ctrl+Alt+F2 для перехода во вторую консоль, в некоторых дистрибутивах, кроме запроса логина и пароля, будет выведена информация про активную TTY связанную с этой консолью. Но этой информации может и не быть. В данном случае консоль будет связана с устройством tty2.

Войдите от имени обычного пользователя, затем наберите такую команду, чтобы посмотреть номер устройства tty:

У меня вы видите устройство /dev/pts/0, это виртуальное устройство эмулятора терминала, но если вы будете выполнять задачу в tty2, то отобразиться именно она. Теперь давайте посмотрим список tty устройств с помощью команды ls:

Нас будут интересовать не все устройства, а только первые три. В этих устройствах нет ничего особенного, это обычные устройства символьного типа. Устройство tty2 подключено к консоли 2, устройство tty3 подключено к консоли 3.

Нажмите сочетание клавиш Ctrl+Alt+F3, чтобы переключиться в третью консоль, затем выполните команду:

Затем вернитесь во вторую консоль. Здесь вы увидите отправленную строку, Hello World. Все это можно повторить с помощью эмуляторов терминала в графическом интерфейсе, только здесь будут использоваться псевдо-терминальные устройства /dev/pts/*. Теперь попробуем отобразить содержимое файла fstab с помощью cat в другом терминале:

С помощью cat вы можете отправить файл непосредственно на принтер. Например, если устройство принтера /dev/usb/lp0, то для печати файла будет достаточно выполнить:

Каталог /dev/ содержит много интересных файлов устройств. Это интерфейсы доступа к аппаратному обеспечению и вам не нужно думать, что это, жесткий диск или экран. Например, вся оперативная память компьютера доступна в виде устройства /dev/mem. С помощью него вы можете иметь прямой доступ к памяти. Мы можем вывести содержимое памяти в терминал:

Утилита dd, в отличие от cat дает больше контроля над процессом и позволяет указать сколько данных нужно прочитать. Но не ко всей памяти вы можете получить доступ. В ядре встроена защита, поэтому обычно, вы можете читать память, только для своего процесса.

Также тут есть файлы, которые несвязанны ни с какими реальными устройствами, это null, zero, random и urandom. Устройство /dev/null может использоваться для перенаправления вывода команд, чтобы данные никуда не выводились. Устройство /dev/zero используется для получения строки, заполненной нулями.

Вы можете использовать ту же команду dd, чтобы попытаться вывести ряд символов с устройства /dev/null:

Обратите внимание, что ничего выведено не будет, потому что это устройство пусто, оно только принимает данные и никуда их не сохраняет. Устройства /dev/random и /dev/urandom позволяют получить случайные комбинации чисел или байт

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

Устройства /dev/random и /dev/urandom позволяют получить случайные комбинации чисел или байт. Вы можете использовать такую команду, чтобы получить случайные байты информации:

Для остановки нажмите Ctrl+C. Устройство urandom позволяет генерировать случайные последовательности независимые от предыдущего числа, в качестве источника энтропии используется нажатия клавиш и движения мыши.

Устройство /dev/zero позволяет получить строку, заполненную нулями. Для проверки используйте такую команду:

Обратите внимание, что восьмеричные нули и нули ASCII это не одно и то же

Файлы устройств Linux

Все файлы устройств расположены в каталоге /dev, который есть неотделимой частью корневой файловой системы, поскольку они должны быть доступны на всех этапах загрузки. Они также известны как специальные файлы устройств. Эти файлы используются операционной системой для обеспечения пользователю и программам интерфейса доступа к устройствам, подключенным к компьютеру.

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

Обратная передача от физических устройств тоже проходит по этому пути через файл устройства. Давайте посмотрим как будет выглядеть поток передачи данных для типичной команды, например, cat:

На схеме приведена схема передачи данных для команды cat /etc/resolv.conf. Вы выполняете команду из терминала, утилита отправляет запрос файла драйверу, который ищет файл на диске и читает его содержимое. Данные передаются через файл устройства, а затем опять же, через файл устройства псевдо-терминала передаются в эмулятор терминала 6, где они будут отображены.

Если мы перенаправим вывод команды в файл, например, cat /etc/resolv.conf > /etc/resolv.bak, то левая часть схемы останется неизменной, а правая сторона будет вести к файлу устройства /dev/sda2. Эти устройства делают очень простым использование стандартных потоков ввода/вывода для доступа к каждому устройству. Простое перенаправление потока данных в файл устройства приведет к записи данных на устройство.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector