Добавить файл в файл linux

Обновлено: 21.11.2024

У меня есть два файла: файл1 и файл2. Как добавить содержимое файла2 в файл1, чтобы содержимое файла1 сохранялось в процессе?

8 ответов 8

@BijayRungta: Похоже, вы сами ответили на свой вопрос. Вы должны добавить sudo к команде cat (и ввести учетные данные, если будет предложено).

вы должны . chmod 777 /etc/default/docker, чтобы дать себе права на запись в этот файл — после этого обязательно восстановите старые права доступа к файлу

@Sigur: Если нет способа направить вывод в два файла одновременно, это потребует двух вызовов команды.

@Sigur или взгляните на программу tee: cat 1 | тройник -а 2 3 . Вы можете поместить сколько угодно файлов после переключателя --append (или -a для краткости).

каталог файл2 >> файл1

Оператор >> добавляет выходные данные в именованный файл или создает именованный файл, если он не существует.

cat файл1 файл2 > файл3

Это объединяет два или более файлов в один. У вас может быть столько исходных файлов, сколько вам нужно. Например,

cat *.txt >> новый файл.txt

Обновление 20130902
В комментариях Юмиро предлагает «не пытайтесь использовать cat файл1 файл2 > файл1 ». Причина, по которой это может не привести к ожидаемому результату, заключается в том, что файл, получающий перенаправление, подготавливается до выполнения команды слева от >. В этом случае первый файл file1 усекается до нулевой длины и открывается для вывода, затем команда cat пытается объединить файл нулевой длины с содержимым файла file2 в файл file1. В результате исходное содержимое файла1 теряется, а его место занимает копия файла2, что, вероятно, не соответствует ожидаемому.

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

Хотя это и сообщает читателю то, что ему нужно знать, его легко пропустить, если вы не ищете его и не анализируете утверждение слово за словом. Самое важное слово здесь — «до». Перенаправление завершается (или не выполняется) до выполнения команды.

В примере cat файл1 файл2 > файл1 оболочка сначала выполняет перенаправление, чтобы дескрипторы ввода-вывода находились на месте в среде, в которой будет выполняться команда, до ее выполнения.

Более удобную версию, в которой подробно рассматривается приоритет перенаправления, можно найти на веб-сайте Яна Аллена в виде учебных курсов по Linux. На его странице I/O Redirection Notes можно многое сказать по этой теме, включая наблюдение, что перенаправление работает даже без команды. Передача этого в оболочку:

<р>. создает пустой файл с именем out. Оболочка сначала настраивает перенаправление ввода-вывода, затем ищет команду, не находит ее и завершает операцию.

В Linux при работе с файлами в терминале иногда нам нужно добавить одни и те же данные вывода команды или содержимого файла. Добавить означает просто добавить данные в файл, не стирая существующие данные. Сегодня мы увидим, как мы можем добавить текст в файл на терминале.

Использование >> оператора:

Оператор >> перенаправляет вывод в файл. Если указанный файл не существует, файл создается, а затем текст добавляется к файлу.

Примеры:

Мы можем использовать команду echo для добавления текста в файл, например

В качестве альтернативы мы можем использовать команду printf для добавления текста в файл.

Мы также можем использовать команду cat для добавления содержимого одного файла в другой файл.

Пример:

В этом примере мы должны добавить содержимое файла file1.txt к файлу file2.txt

Примечание. Не используйте > или >> Это приведет к удалению данных целевого файла. Это может привести к потере данных.

Использование команды tee:

Команда tee копирует текст из стандартного ввода и записывает его в стандартный выходной файл. Тройник предоставляет возможность добавления текста в файл.

Мы также можем добавить содержимое файла в другой файл с помощью команды tee

Пример:

В этом примере мы должны добавить содержимое файла file1.txt к файлу file2.txt

В Linux существует шесть основных способов создания файлов. Все они имеют свое предназначение и преимущества. Они следующие:

1. кошачья команда

Это наиболее универсальная команда/инструмент для создания файлов в системах Linux. Мы не можем редактировать файл с помощью команды cat. Основные операции, которые можно выполнить с его помощью, следующие:

Чтобы создать файлы и записать в них данные

Эта команда создает новый файл file1 (в режиме записи), если он не существует в текущем рабочем каталоге. Если в текущем каталоге существует какой-либо файл с именем файла1, он перезаписывается.

Примечание. После записи текста в файл нажмите ctrl+d, чтобы сохранить и выйти из режима записи.

Чтобы просмотреть содержимое файла

Эта команда просто выводит содержимое файла1 на экран терминала.

Объединить файлы — добавить содержимое двух файлов в новый или существующий файл

Эта команда создает новый файл файл3 с содержимым файлов файл1 и файл2, если файл3 не существует в текущем рабочем каталоге. Если в текущем каталоге существует файл с именем файл3, то он перезаписывается содержимым файлов файл1 и файл2.

Чтобы добавить содержимое в конец файла

Эта команда создает новый файл file2 (в режиме записи), если он не существует в текущем рабочем каталоге. Если в текущем каталоге существует какой-либо файл с именем файла2, то он открывается (в режиме добавления).

Чтобы скопировать данные файла (содержимое одного файла в другой)

Эта команда создает новый файл файл2 с содержимым файла1, если файл2 не существует в текущем рабочем каталоге. Если в текущем каталоге существует файл с именем файл2, то он перезаписывается содержимым файла1.

Чтобы изменить данные файла (tac)

2. сенсорная команда

С помощью этой команды мы можем создать пустой файл (или несколько пустых файлов). Но его основная цель — изменить или обновить временную метку файла. Основные операции, которые можно выполнить с его помощью, следующие:

Создание файла

Примечание. Создайте файл, а затем используйте команду cat для просмотра данных.

Чтобы изменить временную метку файла

Примечание. Мы используем stat имя_файла для проверки временной метки файла. Мы видим, что доступ, изменение и изменение теперь обновлены.

Изменить только время доступа

Время доступа — это время последнего доступа к файлу.

Изменить только время модификации

Время изменения — это время, когда файл был изменен.

3. команда vi

Его основная функция — редактировать файлы. Он обычно используется программистами для редактирования текстового содержимого любого файла в текстовом редакторе vi. Основные операции, которые можно выполнить с его помощью, следующие:

Примечание. Чтобы сохранить текстовый редактор vi и выйти из него, нажмите клавишу Escape, затем введите :wq и нажмите Enter.

Создать файл

Эта команда создает новый файл file_1 и открывает его в текстовом редакторе vi, если он не существует в текущем рабочем каталоге.Если файл с именем файла file_1 существует в текущем каталоге, эта команда просто открывает файл в текстовом редакторе vi.

Открыть и отредактировать файл

4. нано команда

Его можно найти или не найти во всех дистрибутивах LINUX. Мы можем создавать и редактировать файлы.

Примечание. Чтобы выйти из текстового редактора nano, нажмите ctrl + x.

5. команда gedit

Пользователи Linux обычно используют интерфейс командной строки (CLI) для записи или редактирования текстовых файлов. Но если мы хотим графически отредактировать текстовый файл на компьютерах с Linux, не изучая мощные редакторы, такие как vim и nano, тогда текстовый редактор gedit облегчит нам задачу.

“gedit” означает текстовый редактор GNOME. Это стандартный текстовый редактор по умолчанию, который можно найти в любой системе со средой рабочего стола GNOME, включая Ubuntu, Fedora, Debian, CentOS и Red Hat. Используя gedit, мы можем создавать, а также записывать/редактировать текстовые файлы.

Создать файл

Эта команда создает новый файл file_2 (в режиме записи) в текстовом редакторе gedit, если он не существует в текущем рабочем каталоге. Если какой-либо файл с именем файла file_2 существует в текущем каталоге, он открывается (в режиме редактирования) в текстовом редакторе gedit.

Примечание. Чтобы снова использовать терминал, нажмите Ctrl + C.

Открыть и отредактировать файл

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

Эта команда открывает текстовый редактор gedit в качестве фоновой задачи. Мы сразу получаем приглашение командной строки и продолжаем использовать окно терминала, даже когда запущен текстовый редактор gedit.

6. команда mv

Обычно мы используем команду mv для перемещения файлов или каталогов из одного места в другое в системах Linux. Но мы также можем использовать его для создания новых файлов с содержимым какого-либо другого файла в системе.

Эта команда создает новый файл файл_3 с содержимым файла_2, если файл_3 не существует в текущем рабочем каталоге. Если какой-либо файл с именем файла file_3 существует в текущем каталоге, он перезаписывается содержимым файла file_2.

Примечание. Эта команда копирует содержимое файла_2 в файл_3 и удаляет файл_2.

Лори Кауфман

Лори Кауфман
Писатель

Лори Кауфман – специалист по технологиям с 25-летним опытом работы. Она была старшим техническим писателем, работала программистом и даже управляла собственным бизнесом в нескольких местах. Подробнее.

Команда cat очень полезна в Linux. У него есть три основные функции, связанные с управлением текстовыми файлами: их создание, отображение и объединение.

Мы обсудили использование команды cat (среди прочего) для создания и просмотра текстовых файлов в командной строке в Linux.Но давайте предположим, что у вас есть три текстовых файла: file1.txt, file2.txt и file3.txt. Вы хотите объединить (или объединить) их в один текстовый файл, содержащий информацию из всех трех, в указанном порядке. Вы также можете сделать это с помощью команды cat.

Просто откройте терминал и введите следующую команду:

Очевидно, замените имена файлов в приведенном выше примере своими собственными.

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

Обычно, однако, вы, вероятно, захотите объединить эти текстовые файлы в другой текстовый файл, а не просто вывести результаты на экран. К счастью, это очень просто. Все, что вам нужно сделать, это добавить символ перенаправления вывода ( > ) после списка объединяемых файлов, а затем указать имя конечного текстового файла.

ПРИМЕЧАНИЕ. Файл, указанный после символа перенаправления вывода, будет перезаписан, если он уже существует. Поэтому будьте внимательны при указании имени объединенного текстового файла. Позже в этой статье мы покажем вам, как добавлять файлы в конец существующего файла.

Если вы откроете файл 4.txt (либо с помощью команды cat, либо в текстовом редакторе по вашему выбору), вы обнаружите, что он содержит текст первых трех текстовых файлов.

Если вы объединяете списки элементов из нескольких файлов и хотите расположить их в алфавитном порядке в объединенном файле, вы можете отсортировать объединенные элементы в результирующем файле. Для этого введите базовую команду cat, которую мы вам показывали ранее, а затем команду канала (|) и команду sort. Затем введите символ перенаправления вывода ( > ), а затем имя файла, в который вы хотите скопировать объединенный текст. Все строки текста в результирующем файле будут отсортированы по алфавиту.

Как мы упоминали ранее, существует также способ добавления файлов в конец существующего файла. Введите команду cat, а затем файл или файлы, которые вы хотите добавить в конец существующего файла. Затем введите два символа перенаправления вывода ( >> ), а затем имя существующего файла, в который вы хотите добавить.

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

Курсор появится на следующей строке под подсказкой. Начните вводить текст, который хотите добавить в файл. Когда вы закончите, нажмите Enter после последней строки, а затем нажмите Ctrl+D, чтобы скопировать этот текст в конец файла и закрыть cat.

Если после объединения текстовых файлов у вас получится очень длинный файл, вы можете использовать символ вертикальной черты с командой less при просмотре файла в окне терминала. Например, cat file4.txt | меньше . В этой статье мы обсудим использование команды less.

< /tbody>
Команды Linux
Файлы tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm
Процессы alias · screen · top · nice · renice · прогресс · strace · systemd · tmux · chsh · история · at · пакетное · бесплатное · которое · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · стена · yes · kill · спать · sudo · su · время · groupadd · usermod · группы · lshw · выключение · перезагрузка · halt · poweroff · passwd · lscpu · crontab · date · bg · fg
Сеть netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · копать · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw
  • › Как установить Google Play Маркет в Windows 11
  • › Почему прозрачные чехлы для телефонов желтеют?
  • ›5 шрифтов, которые следует прекратить использовать (и лучшие альтернативы)
  • › Как восстановить метки панели задач в Windows 11
  • › Почему не было Windows 9?
  • › Что означает XD и как вы его используете?

Читайте также: