Linux создать файл со случайными данными

6 способов создать файл в Linux определенного размера

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

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

Я уже знаю несколько команд для выполнения этого, но я включил все возможные варианты в этой статье.

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

Я собираюсь создать файл 10M.

Это можно сделать с помощью следующих 6 методов.

  • fallocate: fallocate используется для предварительного выделения или освобождения места в файле.
  • truncate: truncate используется для сокращения или расширения размера файла до указанного размера.
  • dd: может копировать файл, конвертировать и форматировать в соответствии с операндами.
  • head: head используется для отображения первой части файлов.
  • Команда xfs_mkfile: xfs_mkfile позволяет нам создавать файлы определенного размера в Linux.
  • perl: Perl – это язык программирования, специально разработанный для редактирования текста.

Как создать файл определенного размера в Linux с помощью команды fallocate?

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

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

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

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

Как создать файл определенного размера в Linux с помощью команды truncate?

truncate используется для уменьшения или расширения размера файла до указанного размера.

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

Как создать файл определенного размера в Linux с помощью команды dd?

Команда dd означает дубликатор данных.

Он используется для копирования и преобразования данных (по умолчанию из стандартного ввода в стандартный вывод).

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

Как создать файл определенного размера в Linux с помощью команды head?

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

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

Как создать файл определенного размера в Linux с помощью команды xfs_mkfile?

xfs_mkfile создает один или несколько файлов. Файл дополняется нулями по умолчанию.

Размер по умолчанию – в байтах, но его можно пометить как килобайты, блоки, мегабайты или гигабайты с суффиксами k, b, m или g соответственно.

Читайте также:  Создать установочную флешку ubuntu windows

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

Как создать файл определенного размера в Linux с помощью команды perl?

Perl означает «Practical Extraction and Reporting Language».

Perl – это язык программирования, специально разработанный для редактирования текста.

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

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

Источник

Как создать файл в терминале

Философия Linux гласит — всё в системе есть файл. Мы ежедневно работаем с файлами, и программы, которые мы выполняем, — тоже файлы. В разных случаях нам может понадобиться создать в системе файлы определённого типа. Если вам интересно, какие типы файлов в Linux можно создать, смотрите отдельную статью.

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

Как всё это делать, вы узнаете из этой статьи. Мы рассмотрим все доступные средства создания файлов в терминале Linux. Поехали!

1. Редактор nano

Самый распространённый способ создать текстовый файл в Linux — это использовать консольные текстовые редакторы. Например nano. После ввода команды открывается редактор, и вы прописываете нужный текст, например:

2. Редактор Vi

Тот же принцип, но программа намного серьёзнее:

Если вы в первый раз столкнулись с vim, то предупрежу — это необычный редактор. Здесь есть два режима: режим вставки и командный. Переключаться между ними можно с помощью кнопки Esc. Для выхода из редактора в командном режиме наберите :q, для сохранения файла — :w. Вообще, Vim — очень полезный инструмент. Чтобы узнать побольше о его возможностях и выучить основы, выполните: vimtutor.

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

3. Оператор перенаправления >

Это, наверное, самая короткая команда для создания файла в Linux:

Оператор оболочки для перенаправления вывода позволяет записать вывод любой команды в новый файл. Например, можно подсчитать md5 сумму и создать текстовый файл в Linux с результатом выполнения.

Это рождает ещё несколько способов создания файла в Linux, например, выведем строку в файл с помощью команды echo:

echo «Это строка» > файл.txt

Этот способ часто используется для создания конфигурационных файлов в Linux, так сказать, на лету. Но заметьте, что sudo здесь работать не будет. С правами суперпользователя выполниться echo, а запись файла уже будет выполнять оболочка с правами пользователя, и вы всё равно получите ошибку Access Denied.

Ещё тем же способом можно сделать примитивный текстовый редактор для создания файла. Утилита cat без параметров принимает стандартный ввод, используем это:

После выполнения команды можете вводить любые символы, которые нужно записать в файл, для сохранения нажмите Ctrl+D.

А ещё есть утилита printf, и здесь она тоже поддерживает форматирование вывода:

printf «Это %d текстовая строка\n» 1 > файл

Читайте также:  Canon g3010 series драйвер windows 10

Этот способ создать файл в Linux используется довольно часто.

4. Оператор перенаправления вывода >>

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

echo «Это текстовая строка» > файл.txt
$ echo «Это вторая текстовая строка» >> файл.txt

5. Оператор перенаправления 2>

Первые два оператора перенаправления вывода команды в файл использовали стандартный вывод. Но можно создать файл в терминале Ubuntu и перенаправить в него вывод ошибок:

Если команда не выдает ошибок, файл будет пустым.

6. Оператор перенаправления и head

С помощью команды head можно выбрать определённый объем данных, чтобы создать текстовый файл большого размера. Данные можно брать, например, с /dev/urandom. Для примера создадим файл размером 100 мегабайт:

base64 /dev/urandom | head -c 100M > файл

7. Команда cp

Команда cp используется для копирования файлов в Linux. Но с её помощью можно и создать файл. Например, чтобы создать пустой файл, можно просто скопировать /dev/null:

cp /dev/null файл

8. touch

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

Чтобы создать пустой файл Linux, просто наберите:

Можно создать несколько пустых файлов сразу:

touch файл1 файл2

Опция -t позволяет установить дату создания. Дата указывается опцией -t в формате YYMMDDHHMM.SS. Если не указать, будет установлена текущая дата. Пример:

touch -t 201601081830.14 файл

Можно использовать дату создания другого файла:

touch -r шаблон файл

Также можно установить дату последней модификации, с помощью опции -m:

touch -m -t 201601081830.14 файл

Или дату последнего доступа:

touch -a -t 201601081830.14 файл

Чтобы посмотреть, действительно ли задаётся информация, которую вы указали, используйте команду stat:

9. Утилита dd

Это утилита для копирования данных из одного файла в другой. Иногда необходимо создать файл определённого размера в Linux, тогда можно просто создать его на основе /dev/zero или /dev/random, вот так:

dd if=/dev/zero of=

Параметр if указывает, откуда брать данные, а of — куда записывать, count — необходимый размер. Ещё можно указать размер блока для записи с помощью bs, чем больше размер блока, тем быстрее будет выполняться копирование.

Создание специальных файлов в Linux

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

Выводы

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

Источник

Сгенерируйте случайное имя файла в оболочке unix

Я хотел бы создать случайное имя файла в оболочке unix (скажем, tcshell). Имя файла должно состоять из случайных 32 шестнадцатеричные цифры, например:

(к которому я добавлю, что необходимо). Дело в том, что это можно сделать только в оболочке, не прибегая к программе.

12 ответов:

предполагая, что вы находитесь на linux, должно работать следующее:

это только псевдослучайно, если ваша система работает с низким уровнем энтропии, но (в linux) гарантированно завершится. Если вам нужны действительно случайные данные, кот /dev/random вместо /dev/urandom . Это изменение сделает ваш код блочным до тех пор, пока не будет доступна достаточная энтропия для получения действительно случайного вывода, поэтому он может замедлить ваш код. Для большинства применений, выход /dev/urandom достаточно случайно.

Читайте также:  Пишем свой windows драйвер

если вы в OS X или другом BSD вам нужно изменить его следующим образом:

почему бы не использовать команду unix mktemp:

одна команда, без трубы, без петли:

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

С помощью «16» генерирует 32 шестнадцатеричных цифр.

протестировано в zsh, должно работать с любой совместимой оболочкой BASH!

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

однако, без использования любые внешние исполняемые файлы, в Баш и КШ:

изменить нижний регистр x в строке формата в верхнем регистре X чтобы сделать буквенные шестнадцатеричные символы в верхнем регистре.

вот еще один способ сделать это в bash, но без явный цикл:

в следующем, «первый» и «второй» printf относится к порядку, в котором они выполняются, а не к порядку, в котором они появляются в строке.

этот метод использует расширение скобок для получения списка из 32 случайных чисел mod 16, за каждым из которых следует пробел и одно из чисел в диапазоне в фигурных скобках, за которым следует другое пространство (например, 11 00 ). Для каждого элемента этого списка, первый printf снимает все кроме первых двух символы, использующие его строку формата ( %.2 ) оставляя либо одну цифру, за которой следует пробел каждая или две цифры. Пробел в строке формата гарантирует, что между каждым выходным номером будет хотя бы один пробел.

подстановка команды, содержащая первый printf не цитируется, так что разделение слов выполняется, и каждое число переходит ко второму printf как отдельный аргумент. Там числа преобразуются в шестнадцатеричные с помощью %X формат строки и они присоединяются друг к другу без пробелов (так как нет в строке формата) и результат сохраняется в переменной с именем string .

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

я тестировал его в Bash 3.2, 4.4 и 5.0-alpha. Но это не работает в zsh (5.2) или ksh (93u+), потому что RANDOM оценивается только один раз в расширении скобки в этих оболочках.

обратите внимание, что из-за использования оператора mod на значение, которое колеблется от 0 до 32767 распределение цифр с помощью фрагментов может быть искажено (не говоря уже о том, что числа псевдо случайный в первую очередь). Однако, поскольку мы используем mod 16 и 32768 делится на 16, это не будет проблемой здесь.

в любом случае, правильный способ сделать это с помощью mktemp а в Олег Разгуляев ответ.

этот ответ очень похож на fmarks, поэтому я не могу взять на себя ответственность за это, но я нашел комбинации команд cat и tr довольно медленными, и я нашел эту версию немного быстрее. Вам необходимо вывести.

Источник

Оцените статью