Как создать несколько файлов в linux

Обновлено: 05.07.2024

Эти способы тестировались на дистрибутиве Ubuntu, но будут работать на любой системе Linux.

Создание пустого файла при помощи touch

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

Создание сразу нескольких пустых файлов при помощи touch

Создание пустого файла при помощи echo

Пояснение: Команда echo предназначена для вывода на экран строки, которая в нее передается. Символ > перенаправляет вывод в файл. Соответственно мы перенаправили пустоту в файл.

Трюк для создания пустых файлов

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

Или лучше такой пример:

Двоеточие в начале, чтобы случайно не записать вывод предыдущей команды в файл.

Создание файла с содержимым

Пояснение: Выводим строку 123 и перенаправляем этот вывод в файл. Файл будет содержать строку 123

Создание файла путем объединения других файлов с помощью cat

Пояснение: Команда cat выводит на экран содержимое на экран, однако мы перенаправляем этот вывод в файл. Соответственно мы создали файл big_file в котором находится содержимое из трех других файлов.

Создание файла с помощью любой команды и символа >

Мы можем создать файл, с помощью команд, которые выводят что-то на экран, записав этот вывод в файл. Например ps aux выводит информацию о текущих процессах в системе. Мы просто можно записать весь вывод этой команды в файл file.txt и потом его проанализировать.

Записываем в файл справку по команде man :

Записываем в файл календарь на 2021 год

Создание фала при помощи редактора nano

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

Иначе вы получите ошибку о несуществующей команде Command 'nano' not found .

Проверить установлен ли nano в вашей системе можно с помощью следующей команды:

Результатом будет информация об установленном редакторе:

Создание файла при помощи текстового редактора Vim

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

На всякий случай скажу вам способ выйти из этого редактора, т.к. даже это совершенно не очевидно: нажмите Esc , затем : затем введите q! затем нажмите Enter - это способ выхода без сохранения. Для сохранения нужно набрать x! вместо q

Создание файла определенного размера c помощью fallocate

Таким образом вы создали файл hello.txt размером 10 мегабайт.

Создание файла определенного размера с помощью dd

Создание файла-сокета c помощью команды mkfifo

После создания вам нужно установить на него права, чтобы нужные программы могли им пользоваться

Создание файла при помощи HEREDOC

Пояснение: мы сначала пишем cat << EOF > file.txt причем вместо EOF может быть любая строка, которой нет в тексте, который мы собираемся написать. Затем когда мы завершили заполнение многострочного файла, просто переходим на следующую строку и вводим EOF. В итоге содержимое нашего файла будет:

Спасибо за внимание! Если вы знаете какой-нибудь интересный и полезный способ создания фалов - напишите его в комментариях.

Для начала работы в терминале Linux не нужно быть гуру администрирования — достаточно знать список базовых команд для навигации и работы с файлами и папками.

Навигация

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

Она выведет текущую рабочую директорию (print working directory).

Если вам нужно перейти в другую папку, для этого используется команда cd (change directory) с указанием пути к нужной вам папке:

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

текущая директория, в которой вы сейчас находитесь. Например, чтобы найти файл с именем hello.txt в текущей директории, можно использовать команду:

директория, расположенная на уровень выше текущей. Если вы находитесь в папке /home/user , то комбинация .. будет обозначать папку /home . То есть, чтобы вернуться на один уровень назад, необязательно вводить весь путь:

домашняя папка текущего пользователя. Например, запустить скрипт some-script.sh из домашней папки, когда вы находитесь в другой директории, можно так:

предыдущая посещённая директория. Представим, что вы перешли в папку /home , потом вам потребовалось изменить настройки в папке /etc . Чтобы вернуться назад, достаточно использовать команду:

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

Абсолютный путь — это полный путь от корневой папки сервера «/» . Например, вот такой:

Также к абсолютным относятся пути, в которых используется

— указание на домашнюю папку текущего пользователя. Например, при доступе к файлу

/.bash_profile он всегда будет открываться из одного и того же места: вместо

будет использоваться значение переменной окружения $HOME, которое не меняется.

Относительный путь — это неполный путь. Он указывается относительно какого-то объекта: например, текущей рабочей директории. То есть в начале отсутствует символ корневой папки «/» .

Представим, что мы сейчас работаем с файлами в папке /var/www/data/username . Нам нужно отредактировать содержимое в директории на уровень выше — /var/www/data . Чтобы управлять данными в этой папке, нам не обязательно постоянно указывать полный путь к ним — можно работать с относительным, начиная его с «../» .

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

Чтобы отобразить список содержимого папки, можно использовать команду ls (list). Если дополнить её ключами -al , она покажет типы данных, разрешения и скрытые файлы. Следующий пример покажет названия файлов и папок текущей рабочей папки:

А этот выведет в терминал подробный список содержимого папки /etc:

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

Ubuntu и Debian:

CentOS:

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


Поиск

С помощью команды find можно найти на сервере папку или файл по набору условий. Структура команды проста:

Например, мы знаем название файла hello.txt , но не знаем, где именно на сервере он лежит. Найти его поможет конструкция:

  • / указывает, что искать надо, начиная с корневой папки сервера. Если вам известно, где может лежать искомый файл, можно задать путь точнее.
  • -name указывает, что искать надо строго по имени.
  • "hello.txt" — имя файла, который нам нужно найти. Если известна только часть имени, можно указать сокращённый вариант: "hello*" , "*.txt"

Кроме -name , команда find имеет множество опций, которые позволяют уточнить условия поиска подробнее. Вот список наиболее полезных параметров:

Позволяет указать тип искомых данных: -type f — файлы, -type d — директории

Позволяет вывести файлы с определённым уровнем доступа. Например, - perm 777

Отображает только пустые файлы или папки

Позволяет искать данные среди файлов, принадлежащих конкретному пользователю: -user root

Позволяет искать данные среди файлов, принадлежащих определённой группе пользователей: -group www-data

Позволяет задать условие относительно времени изменения файлов:

Позволяет задать условие относительно времени последнего доступа к файлу, аналогично mtime

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

Позволяет применить к найденным файлам команду COMMAND

Больше информации о возможностях find можно узнать в файлах документации:

Из встроенных инструментов поиска можно также отметить утилиту whereis . Она предназначена для поиска бинарных и системных файлов и директорий служб. Следующий пример выведет список всех файлов и папок, имеющих прямое отношение к php :

Работа с папками

Для создания новых директорий используется команда mkdir с указанием пути до создаваемой папки. Пример ниже создаст папку /new в существующей директории /home/user :

Если нужно создать несколько папок за раз, можно просто перечислить их через пробел:

Удалить папку можно с помощью команды rmdir с указанием пути. Папка будет удалена только в случае, если она пуста (можно использовать параметр --ignore-fail-on-non-empty , чтобы удалить папку в любом случае). Для удаления нескольких вложенных папок можно аналогично использовать параметр -p . Пример ниже удалит папку /photos и все каталоги внутри неё:

Для удаления есть более эффективный инструмент, rm , про который расскажем ниже.

Работа с файлами

Создание

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

Самый простой, одновременно создающий и файл, и недостающие папки — команда touch . Достаточно передать ей полный путь к файлу. Для примера создадим в папке docs папку copies , а внутри неё — файл copies-list.txt :

Несуществующая папка copies создастся автоматически.

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

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

Для сохранения и выхода из файла в vi нужно нажать клавишу Esc , ввести сочетание :wq и нажать Enter . Для выхода без сохранения нужно также нажать Esc , ввести сочетание :q! и нажать Enter .

Ещё пара способов создания пустых файлов:

Редактирование

Для редактирования файлов используются консольные текстовые редакторы. Самые известные — vi и nano . В некоторых дистрибутивах vi заменён на vim ( vi improved, улучшенный vi ) или vim.tiny

Редактор vi будет доступен вам по умолчанию на большинстве Linux-систем.


А теперь к делу. Vi (более известен как Vim) — старый, очень гибкий и при этом не очень простой в плане управления редактор. Собственно, так он и попал в популярные программистские и админские шуточки.

Запуск редактора без аргументов откроет его в режиме справки:


Чтобы закрыть Vim (без сохранения), введите сочетание :q!

Если указать редактору путь к файлу, он откроет его для редактирования. Если файл не существовал, он будет создан:

При первом входе Vim открывает файл в режиме просмотра. Он не позволяет редактировать его содержимое, но можно вводить командные последовательности, перемещаться по тексту, выполнять поиск и пр.

Чтобы начать ввод, нужно перейти в режим редактирования с помощью клавиши I . Чтобы вернуться в режим просмотра, нажмите Esc .

Перемещение по тексту выполняется с клавиатуры:

  • перемещение в начало текста: Esc + дважды G
  • перемещение в конец текста: Shift + G
  • перемещение по строке горизонтально: стрелки ← →
  • перемещение по строкам вертикально: стрелки ↑ ↓
  • отображение номеров строк: Esc , введите :set number , нажмите Enter
  • перемещение по номерам строк: Esc , введите : номер строки, нажмите Enter

Для выхода с сохранением файла нажмите Esc и введите :wq!

Текстовый редактор vim — краткое руководство

Более современной и удобной альтернативой Vim считается редактор nano . Современные дистрибутивы включают его по умолчанию, но на ранних версиях устанавливать придётся вручную:

Ubuntu и Debian:

CentOS:

Вызов nano без аргументов откроет пустой редактор. Можно начать ввод (при сохранении вам будет предложено указать имя и сохранить файл) или вызвать режим помощи со списком доступных команд с помощью сочетания Ctrl + G .


Для сохранения файла нажмите Ctrl + O — редактор предложит ввести имя файла: введите имя и нажмите Enter . Если файл существовал, и имя изменять не требуется, просто нажмите Enter .

Для выхода из редактора нажмите Ctrl + X .

Чтение

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

Команда cat позволяет вывести в терминал всё содержимое файла, который указан в качестве аргумента:


Однако, если мы заведомо знаем, что в файле большой объём информации, нет смысла выводить его целиком. Например, команды head и tail могут вывести часть содержимого с начала или конца файла соответственно. Если добавить к ним ключ -n , можно уточнить, сколько строк текста нужно вывести:



Помимо прочего, команда tail очень удобна для чтения логов с ключом -f . В таком режиме она открывает файл в режиме ожидания и выводит все добавляемые данные. Пригодится для тестирования или дебаггинга.

Иногда нам всё-таки нужно полностью просмотреть файл. При этом читать его вывод в терминале неудобно. На такие случаи есть команда less — она открывает файл (или переданный в неё вывод другой команды) в режиме чтения:

В режиме чтения less можно перемещаться, искать текст и многое другое. Все командные последовательности и горячие клавиши можно вывести с помощью параметра --help :

Для выхода из режима чтения введите q и нажмите Enter .

Удаление

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

Самая простая версия rm удалит файл с предварительным подтверждением — для этого потребуется ввести y и нажать Enter :

Для полного же уничтожения всего и вся к команде добавляются параметры -rf . Первый отвечает за рекурсивное удаление данных (т.е. удаление вложенных файлов и папок), второй позволяет отключить подтверждение при удалении. Например, следующая команда удалит папку photos , размещённую в папке docs , и всё её содержимое:

Для шуток над неопытными администраторами им под тем или иным предлогом предлагают выполнить команду rm -rf [/] (без квадратных скобок). Она удаляет всё содержимое сервера от корня. Результат — все данные безвозвратно теряются, а сервер перестаёт работать.

Скачивание и загрузка

Для передачи файлов на сервер и с сервера есть много способов. Самые простые — использование wget , curl или scp .

С помощью параметра -P можно указать путь, куда нужно сохранить скачиваемый файл:

Полный список параметров wget можно посмотреть в справочной информации:

В современных дистрибутивах curl установлен по умолчанию. При необходимости установить его вручную можно следующим образом:

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

В примере мы скачиваем архив latest-ru_RU.tar.gz по ссылке и сохраняем его в текущую рабочую директорию с таким же именем — за это отвечает ключ -O . Если использовать опцию -o , можно задать своё имя ( wp.tar.gz ) для сохраняемого файла:

Если нам нужно загрузить файл c нашего сервера на другой, используется следующая конструкция:

Остальные возможности curl можно узнать в справочной информации:

Утилита scp позволяет копировать файлы между двумя серверами, используя протокол SSH.

Например, для передачи файла filename.txt с нашего сервера на удалённый сервер 1.2.3.4 в папку new-documents пользователя username можно использовать следующую команду:

В процессе система запросит у нас пароль пользователя username для подключения к удалённому серверу. После авторизации файл будет скопирован на целевой сервер в указанную папку.

Чтобы скачать файл с удалённого сервера, достаточно немного видоизменить нашу команду:

Здесь мы в качестве источника для получения копии файла указали удалённый сервер, а в качестве цели для загрузки копии — папку на текущем сервере.

С помощью scp аналогичным образом можно копировать данные между двумя удалёнными серверами:

Запуск исполняемых bash-скриптов

Чтобы запустить скрипт script.sh на сервере, нужно выполнить два шага:

Настроить права на запуск файла для пользователей:

Запустить скрипт. Если вы находитесь в той же директории, где лежит скрипт, достаточно вызвать его по имени:

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

Если вы находитесь в другой директории, для запуска нужно указать полный путь к скрипту.

Чтобы иметь возможность запускать скрипт из любого места на сервере одной простой командой, можно создать для него алиас — короткую команду (псевдоним), которая будет ассоциироваться системой с полным вызовом скрипта.

Весь список существующих алиасов системы можно вывести с помощью команды alias :


Создать свой постоянный алиас можно с помощью файла .bashrc , размещённого в домашнем каталоге вашего пользователя. Нужно открыть его для редактирования:

В соответствующем разделе нужно добавить ваш алиас в следующем формате:

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

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

После этого вы сможете вызывать ваш скрипт с помощью короткой команды.

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

Как настроить cron по ssh

Переименование, перемещение и копирование файлов и папок

Скопировать файл в терминале можно с помощью команды:

C её помощью можно, к примеру, создать копию конфигурационного файла, который вы хотите изменить. Здесь мы создаём копию конфигурационного файла nginx.conf

Папки копируются аналогично. При необходимости скопировать каталог со всем содержимым (рекурсивно) можно добавить к команде ключ -r :

Здесь мы создаём копию папки docs со всем её содержимым с именем files .

Переместить или переименовать файл также просто:

Например, следующая команда переместит файл file.txt в папку new :

Переименовать файл не сложнее:

В этом примере файл file.txt переименовывается в todolist.txt

Аналогично можно перемещать и переименовывать директории.

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

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

Синтаксис touch

Создание пустого файла

Следующая команда создает новый пустой (размером 0 байт) файл с именем file1:

Создание нескольких файлов

При помощи команды touch можно создавать больше одного файла. Например, следующая команда создаст три файла – file1, file2 и file 3:

Также можно указывать диапазон, например:

Изменение времени доступа и модификации

Если нужно изменить время модификации файла file2, выполните следующую команду. Аналогично, время доступа остается неизменным, если не указать опцию -a:

Временные метки используются для сортировки и поиска файлов такими популярными командами Linux, как find и ls.

Запрет создания нового файла

Установка заданного времени доступа и модификации

ВВ – первые две цифры года
ГГ – последние две цифры года.

Результат можно проверить командой ls -l:

Так как время и год не указаны, данная команда устанавливает дату 14 марта текущего года, а время – 00:00.

Использование временных меток другого файла

Создание файла с заданным временем

Приведенная команда создает файл с именем file5 и временной меткой 18:30:55 10 декабря 2018 года.

Заключение

Команда touch очень простая, и мы рассмотрели практически все ее опции. Однако, в разных версиях операционных систем ее работа может немного отличаться. Уточнить детали всегда можно на соответствующей man-странице.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Как создавать файлы в системе Linux: ультимативное руководство для начинающих

В Linux файловая система — это способ организации, управления, структурирования и хранения данных, что-то вроде карты, с помощью которой система ориентируется в файлах, сохраненных на физическом носителе. Все файловые системы с открытым исходным кодом относятся к категории файловых систем Linux. Ключевое отличие в том, что Linux абсолютно все компоненты обнаруживает как файл, даже сам по себе жесткий диск, Linux посчитает данными! Поэтому в линуксах, в отличии от Windows, нет никаких «диск E» или «диск С». Но в Linux есть домашний каталог, аналог «моего компьютера» из виндоуз, там хранятся все рабочие файлы. Внутри домашнего каталога или, как еще говорят, корневой директории, пользователи могут создавать файлы с помощью команд терминала или оболочки.

Создание файлов в Linux с помощью команд терминала

Создание файла на машине с Линуксом – это как демонстрация силы, как показать кто тут главный. И для этого есть множество способов, но, прежде чем приступить, давайте коснемся основ файловой системы Linux. Смотрите, внутри корневого каталога лежат папки с файлами: bin, boot, dev, home, lib, opt, usr, srv и т. д. Не пугайтесь мы не будем досконально изучать ВСЮ файловую систему, только основы, совсем чуть-чуть.

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

Прежде чем приступить непосредственно к созданию файла, давайте рассмотрим очень простую команду. Команда tree обычно используется для просмотра корневого каталога, который показывает список папок с файлами. Обычно tree предустановлена в Linux, но, если у вас есть какие-либо проблемы с использованием этой команды, вы можете следовать приведенным ниже командам.

· Для Ubuntu

· Для Red Hat Type

· Для openSUSE

· Для Arch-подобных дистрибутивов

Теперь, если вы наберете в терминале команду tree, как показано ниже, система покажет вам диаграмму со всеми вашими файлами, папками и каталогами в корневой директории.


Если вы не хотите видеть перегруженную информацией диаграмму, вы можете просмотреть только основные каталоги с помощью этой команды


1. Команда cat

Команда concatenate или cat используется для создания одного или нескольких файлов. Это позволяет пользователям вместе создавать цепочки или серии файлов. Команда сat может создавать или отображать файлы из локального каталога. Она может просматривать один или несколько файлов. А также может сортировать файлы в зависимости от содержимого нескольких файлов.

Что бы использовать команду cat, или любую другую, для начала стоит открыть терминал. Поищите его с помощью вашего Linux Launcher, или используйте шорткат: Ctrl + Alt + T. Обычно терминал лежит в корневой директории, и файлы, созданные описанным здесь способом, будут сохраняться, соответственно, в корневую директорию. Что бы убедиться в этом, воспользуйтесь командой pwd, она выведет путь к текущей директории.

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

Здесь этот знак «>» (больше) известен как знак перенаправления; скоро я расскажу о нем более подробно.

(Зануда моуд от переводчика, который можно не читать, если ты сам не зануда: технически, команда cat ничего не создает, она выводит содержимое файла в поток, или, если вы захотите, она может последовательно вывести в поток содержимое нескольких файлов и слепить их в один. Операнд «>» записывает вывод, т.е. результат, команды в указанный файл, если указанный файл не существует, он его создаст. Таким образом, набранная в терминале команда cat > newfile101.doc действительно создаст файл с именем newfile101.doc, но сама по себе команда cat тут почти не причём)

2. Команда touch

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

Чтобы создать файл с помощью touch, наберите в терминале следующее:

Чтобы проверить, был ли файл создан или нет, просто воспользуйтесь командой ls в терминале.


3. Символ «>», известный как математическое больше или редирект (перенаправление)

Если вы системный администратор, вам может потребоваться каждый день создавать тонны файлов для обновления журналов. А что, если вы сможете создавать файлы из терминала, используя только знак «>» ? Обычно в Linux каждый файл связан с другим файлом, и эта связь отображается с помощью знака «>». Но в терминале, если вы поместите символ перенаправления перед именем несуществующего файла вместе с его расширением, он создаст пустой файл в локальном каталоге.

Чтобы создать файл, используя символ перенаправления, просто введите символ «>» в терминале и напишите имя файла. Вот и все! Вы получили свой желанный файл. Как и прежде, проверить наличие файла вы можете с помощью команды ls.


4. Команда echo

В Linux echo используется для помещения любого оператора или аргумента в любой файл. Если ранее был создан пустой текстовый файл, вы можете записать в него строку с помощью команды echo. Предположим, ранее я создал документ с именем newfile101.doc. Теперь я хочу записать в него строку «hello world».

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


5. Vim

Если вы программист и привыкли писать код в IDE, я уверен, что вы не раз слышали название Vim. Vim - текстовый редактор, используемый в интерфейсе командной строки, который, в том числе, пригоден для создания файлов. Чтобы создать файл с помощью vim, просто введите следующую строку в терминале.

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

(Зануда моуд от переводчика: строго говоря команда откроет текстовый редактор vim, а в нем файл с указанным именем, если такого файла нет, она его создаст. И, вместо распространенных в интернете шуток типа «дед: ищет выход из vim», я вам лучше в двух словах расскажу, как файл сохранить и выйти. Воспользуйтесь командой :wq, она сохранит файл и выйдет из редактора. Ну и, если вы хотите подробный, четкий и весёлый гайд по vimу, вы там намекните как-нибудь в комментариях.)

Чтобы убедиться в том, что все сработало как надо - юзайте как и прежде ls lh.

6. Nano

Nano — это популярный текстовый редактор «Что видишь, то и получаешь» (WYSIWYG - What You See Is What You Get) в Linux. В кодировке UTF-8 Nano — это текстовый редактор обычного типа, также известный как GNU nano. Он весьма эффективен и полезен и может ускорить процесс написания кода. А чтобы создать файл с помощью nano, вам нужно продублировать командную строку, приведенную ниже.

(Зануда моуд: опять же, этой командой вы откроете этот файл в редакторе, если файл не существовал до сих пор, он будет создан. Что бы сохранить файл воспользуйтесь шорткатом: Ctrl+O, что бы выйти: Ctrl+X)

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


7. Команда printf

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

(Зануда моуд: это команда, используется для форматирования данных, в качестве аргументов принимает методы форматирования и список элементов для форматирования. В конечном счете, команда, приведенная ниже, сработает, но напрашивается сравнение про гвозди и микроскопы.)

Для просмотра типа файла и содержимого файла из терминала ls и cat вам в помощь:

8. Команда head

Для вывода начальной части больших файлов, программисты часто используют команду head.

Предположим, что я хочу открыть некий файл логов. Для этого я могу открыть список файлов из терминала. А затем использовать команду head для вывода первых 10 строк этого файла. 10 строк – это дефолтный параметр и его легко поменять с помощью соответствующего аргумента.


9. Команда tail

Команда tail аналогична команде head. Единственное отличие заключается в том, что команда tail выводит последние 10 строк файла, вместо первых. Эта команда обычно используется для просмотра последнего вывода данных в датасете, например.

Например, если вы захотите вывести в поток последние 10 строк файла fontconfig.log.

10. Команда truncate

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

В примере ниже я создаю файл newfile112.txt. Затем с помощью команды truncate я задаю ему размер 1024 Кб (1 Мб). Еще ниже, используя ту же команду, я снова меняю размер файла до 1.5 Мб.


Создание файлов определенного размера в Linux

Иногда админам нужны файлы конкретного размера, чтобы проверить возможности хранения, скорость сети или производительность системы. Такие файлы – что-то вроде заглушки или типографской рыбы, просто тест для проверки работы базы данных. Вот зачем стоит уметь создавать файлы определенного размера. Ниже мы рассмотрим некоторые методы создания таких тестовых файлов.

1. И снова truncate.

Выше мы только что узнали, как увеличить размер файла с помощью команды truncate. Помимо увеличения размеров файлов, вы можете создавать файлы точного размера с помощью этой команды. Здесь я собираюсь показать, как создать файл размером 25M с помощью этой команды. Откройте терминал и введите команду, приведенную ниже.

2. Команда fallocate

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

Допустим, вы хотите создать файл размером 20 КБ. Для этого вам следует произвести вот такое нехитрое математическое действие 20 * 1024 = 20480 КБ.

(А режим зануды и мануал команды говорят нам, что за аргументами офсета и длинны файла может следовать мультипликативный суффикс. KiB (=1024), MiB (=1024*1024) и далее по тексту. И еще, к слову, окончание «iB» опционально, просто K будет значить ровно тоже самое, что и KiB, вуаля, и не надо в математику.)

3. Еще раз про head

Из первой части этой статьи мы уже знаем, что команда head может вывести 10 первых строк логфайла или текста. А сейчас я покажу вам, как вы можете использовать команду head для создания файлов заданного размера. Здесь следует отметить, что каждый файл имеет некоторую системную зарезервированную часть. Вот почему, если вы создадите файл размером 100 МБ, он не будет содержать сто мегабайт данных, из-за системного резервирования.

(благодаря нашей постоянной рубрике «зануда моуд», вы уже и сами догадываетесь какая часть приведенной команды отвечает за создание файла, да?)

4. Perl

Perl — высокоуровневый интерпретируемый динамический язык программирования общего назначения. Название языка официально расшифровывается как Practical Extraction and Report Language («практический язык для извлечения данных и составления отчётов») Он сочетает в себе некоторые из лучших функций sed, awk и sh, что делает его привычным и простым в использовании для пользователей Unix, чтобы быстро находить решения назойливых проблем.

Теперь я собираюсь показать, как создать файл определенного размера с помощью команды perl. Я выделяю размер файла до 1К.

(«Ну, вы понели», - говорит зануда моуд – это все еще операнд > создает вам необходимый файл, без него команда perl -e'print "a" x 1024' выведет на экран строку «а» в 1024 бита весом. Да, это работает, вопрос только в общем КПД такого действия.)

5. Команда xfs_mkfile

Команда xfs_mkfile — это быстрая команда для создания файла определенного размера в Linux. Здесь термин xfs — это краткая форма высокопроизводительной файловой системы журналирования, а mkfile — это синтаксис Linux, который позволяет пользователям задавать размер файла в байтах, килобайтах, мегабайтах или гигабайтах.

Последние мысли

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

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