- Как создать файл в Linux: 12 способов
- Создание пустого файла при помощи touch
- Создание сразу нескольких пустых файлов при помощи touch
- Создание пустого файла при помощи echo
- Трюк для создания пустых файлов
- Создание файла с содержимым
- Создание файла путем объединения других файлов с помощью cat
- Создание файла с помощью любой команды и символа >
- Создание файла при помощи редактора nano
- Создание файла при помощи текстового редактора Vim
- Создание файла определенного размера c помощью fallocate
- Создание файла определенного размера с помощью dd
- Создание файла-сокета c помощью команды mkfifo
- Создание файла при помощи HEREDOC
- 6 способов создать файл в Linux определенного размера
- Как создать файл определенного размера в Linux с помощью команды fallocate?
- Как создать файл определенного размера в Linux с помощью команды truncate?
- Как создать файл определенного размера в Linux с помощью команды dd?
- Как создать файл определенного размера в Linux с помощью команды head?
- Как создать файл определенного размера в Linux с помощью команды xfs_mkfile?
- Как создать файл определенного размера в Linux с помощью команды perl?
- How can I create a file with a specific size from a command line?
- 7 Answers 7
Как создать файл в Linux: 12 способов
Эти способы тестировались на дистрибутиве Ubuntu, но будут работать на любой системе Linux.
Создание пустого файла при помощи touch
Пояснение: Команда touch предназначена для того, чтобы поменять дату изменения файла на текущую. Однако ее также часто используют для создания файлов.
Создание сразу нескольких пустых файлов при помощи touch
touch file1.txt file2.txt file3.txt
Создание пустого файла при помощи echo
Пояснение: Команда echo предназначена для вывода на экран строки, которая в нее передается. Символ > перенаправляет вывод в файл. Соответственно мы перенаправили пустоту в файл.
Трюк для создания пустых файлов
Пояснение: символ > перенаправляет вывод, а мы ничего не выводим, просто перенаправляем пустоту в файл. Это самый короткий способ создать пустой файл.
Двоеточие в начале, чтобы случайно не записать вывод предыдущей команды в файл.
Создание файла с содержимым
Пояснение: Выводим строку 123 и перенаправляем этот вывод в файл. Файл будет содержать строку 123
Создание файла путем объединения других файлов с помощью cat
$ cat file1 file2 file3 > big_file
Пояснение: Команда cat выводит на экран содержимое на экран, однако мы перенаправляем этот вывод в файл. Соответственно мы создали файл big_file в котором находится содержимое из трех других файлов.
Создание файла с помощью любой команды и символа >
Мы можем создать файл, с помощью команд, которые выводят что-то на экран, записав этот вывод в файл. Например ps aux выводит информацию о текущих процессах в системе. Мы просто можно записать весь вывод этой команды в файл file.txt и потом его проанализировать.
Записываем в файл справку по команде man :
Записываем в файл календарь на 2021 год
Создание файла при помощи редактора nano
Этот редактор чуть более привычный простому пользователю, чем Vim, однако он должен быть установлен в вашей системе.
Иначе вы получите ошибку о несуществующей команде Command ‘nano’ not found .
Проверить установлен ли nano в вашей системе можно с помощью следующей команды:
Результатом будет информация об установленном редакторе:
GNU nano, version 2.9.3 (C) 1999-2011, 2013-2018 Free Software Foundation, Inc. (C) 2014-2018 the contributors to nano Email: nano@nano-editor.org Web: https://nano-editor.org/ Compiled options: --disable-libmagic --disable-wrapping-as-root --enable-utf8
Либо сообщение об ошибке: Command ‘nano’ not found
Создание файла при помощи текстового редактора Vim
Если вы никогда не работали с этим редактором, то этот способ вам не подойдет, т.к. без пары часов за документацией Vim не освоить.
На всякий случай скажу вам способ выйти из этого редактора, т.к. даже это совершенно не очевидно: нажмите Esc , затем : затем введите q! затем нажмите Enter — это способ выхода без сохранения. Для сохранения нужно набрать x! вместо q
Создание файла определенного размера c помощью fallocate
Таким образом вы создали файл hello.txt размером 10 мегабайт.
Создание файла определенного размера с помощью dd
$ dd if=/dev/zero of=hello.txt bs=10M count=1
Создание файла-сокета c помощью команды mkfifo
После создания вам нужно установить на него права, чтобы нужные программы могли им пользоваться
Создание файла при помощи HEREDOC
$ cat file.txt > This text is > added by Here Document > EOF
Пояснение: мы сначала пишем cat file.txt причем вместо EOF может быть любая строка, которой нет в тексте, который мы собираемся написать. Затем когда мы завершили заполнение многострочного файла, просто переходим на следующую строку и вводим EOF. В итоге содержимое нашего файла будет:
This text is added by Here Document
Спасибо за внимание! Если вы знаете какой-нибудь интересный и полезный способ создания фалов — напишите его в комментариях.
6 способов создать файл в Linux определенного размера
Если вы хотите создать определенный размер файла в Linux, чтобы расширить раздел подкачки, то вы можете использовать один из следующих методов для его создания.
Я уже знаю несколько команд для выполнения этого, но я включил все возможные варианты в этой статье.
Вы можете проверить все команды, которые доступны в этой статье, и выбрать предпочитаемую для вас.
Я собираюсь создать файл 10M.
Это можно сделать с помощью следующих 6 методов.
- fallocate: fallocate используется для предварительного выделения или освобождения места в файле.
- truncate: truncate используется для сокращения или расширения размера файла до указанного размера.
- dd: может копировать файл, конвертировать и форматировать в соответствии с операндами.
- head: head используется для отображения первой части файлов.
- Команда xfs_mkfile: xfs_mkfile позволяет нам создавать файлы определенного размера в Linux.
- perl: Perl – это язык программирования, специально разработанный для редактирования текста.
Как создать файл определенного размера в Linux с помощью команды fallocate?
Fallocate используется для манипулирования выделенным дисковым пространством для файла, чтобы освободить или предварительно выделить его.
Для файловых систем, которые поддерживают системный вызов fallocate, предварительное распределение выполняется быстро, выделяя блоки и помечая их как неинициализированные, не требуя ввода-вывода для блоков данных.
Это гораздо быстрее, чем создавать файл, заполняя его нулями.
$ fallocate -l 10M daygeek.txt
Используйте команду ls, чтобы проверить заданный размер файла.
$ ls -lh daygeek.txt -rw-rw-r-- 1 daygeek daygeek 10M Feb 3 13:43 daygeek.txt
Как создать файл определенного размера в Linux с помощью команды truncate?
truncate используется для уменьшения или расширения размера файла до указанного размера.
$ truncate -s 10M daygeek1.txt
Используйте команду ls, чтобы проверить заданный размер файла.
$ ls -lh daygeek1.txt -rw-rw-r-- 1 daygeek daygeek 10M Feb 3 13:44 daygeek1.txt
Как создать файл определенного размера в Linux с помощью команды dd?
Команда dd означает дубликатор данных.
Он используется для копирования и преобразования данных (по умолчанию из стандартного ввода в стандартный вывод).
$ dd if=/dev/zero of=daygeek2.txt bs=10M count=1 or $ dd if=/dev/zero of=daygeek3.txt bs=1M count=10 1+0 records in 1+0 records out 10485760 bytes (10 MB, 10 MiB) copied, 0.03385 s, 310 MB/s
Используйте команду ls, чтобы проверить заданный размер файла.
$ ls -lh daygeek2.txt -rw-rw-r-- 1 daygeek daygeek 10M Feb 3 13:44 daygeek2.txt
Как создать файл определенного размера в Linux с помощью команды head?
Команда head считывает первые несколько строк любого текста, переданного ему в качестве ввода, и записывает их в стандартный вывод (который по умолчанию является экраном дисплея).
$ head -c 10MB /dev/zero > daygeek4.txt
Используйте команду ls, чтобы проверить заданный размер файла.
$ ls -lh daygeek4.txt -rw-rw-r-- 1 daygeek daygeek 9.6M Feb 3 13:45 daygeek4.txt
Как создать файл определенного размера в Linux с помощью команды xfs_mkfile?
xfs_mkfile создает один или несколько файлов. Файл дополняется нулями по умолчанию.
Размер по умолчанию – в байтах, но его можно пометить как килобайты, блоки, мегабайты или гигабайты с суффиксами k, b, m или g соответственно.
$ xfs_mkfile 10M daygeek5.txt
Используйте команду ls, чтобы проверить заданный размер файла.
$ 1 ls -lh daygeek5.txt -rw------- 1 daygeek daygeek 10M Feb 3 13:45 daygeek5.txt
Как создать файл определенного размера в Linux с помощью команды perl?
Perl означает «Practical Extraction and Reporting Language».
Perl – это язык программирования, специально разработанный для редактирования текста.
В настоящее время он широко используется для различных целей, включая системное администрирование Linux, сетевое программирование, веб-разработку и т. д.
$ perl -e 'print "a" x 10485760' > daygeek6.txt
Используйте команду ls, чтобы проверить заданный размер файла.
$ ls -lh daygeek6.txt -rw-rw-r-- 1 daygeek daygeek 10M Feb 3 13:47 daygeek6.txt
Все вместе в одном выводе.
$ ls -lh daygeek* -rw-rw-r-- 1 daygeek daygeek 10M Feb 3 13:44 daygeek1.txt -rw-rw-r-- 1 daygeek daygeek 10M Feb 3 13:44 daygeek2.txt -rw-rw-r-- 1 daygeek daygeek 10M Feb 3 13:44 daygeek3.txt -rw-rw-r-- 1 daygeek daygeek 9.6M Feb 3 13:45 daygeek4.txt -rw------- 1 daygeek daygeek 10M Feb 3 13:45 daygeek5.txt -rw-rw-r-- 1 daygeek daygeek 10M Feb 3 13:47 daygeek6.txt -rw-rw-r-- 1 daygeek daygeek 10M Feb 3 13:43 daygeek.txt
How can I create a file with a specific size from a command line?
How can I create a file (e.g. using the touch command or another similar way), but with a specific size (e.g. 14 MB)? The use case is to test FTP with various file sizes. If we can create a file with a specific size, it will be useful to verify FTP transfer etc.
7 Answers 7
DESCRIPTION Shrink or extend the size of each FILE to the specified size [. ] -s, --size=SIZE set or adjust the file size by SIZE
Note: truncate may not be available on your system, e.g. on Mac OS X it’s not installed by default (but you can easily install it, using macports for example). In these cases you may need to use dd or head instead.
Very nice indeed. The touch is not needed though, you can simply run truncate -s 14M filename it will create filename directly.
This seems to create a sparse file, whereas the below answer (that uses «dd») doesn’t. I don’t know if the difference is important to you, but I figured I’d point it out
EDIT: The simplest way is probably the truncate of Ashutosh Vishwa Bandhu’s answer, but as pointed out by @offby1 that creates sparse files which may not be what you want. The solutions below create normal, full files.
The following commands create a 14MB file called foo :
- fallocate (thanks to @Breakthrough who suggested it in the comments and vote up Ahmed Masud’s answer below which also mentions it.)
This command is particularly impressive since it is as fast as truncate (instantaneous) irrespective of the desired file size (unlike the other solutions which will be slow for large files) and yet creates normal files, not sparse ones :
$ truncate -s 14MB foo1.txt $ fallocate -l 14000000 foo2.txt $ ls -ls foo?.txt 0 -rw-r--r-- 1 terdon terdon 14000000 Jun 21 03:54 foo1.txt 13672 -rw-r--r-- 1 terdon terdon 14000000 Jun 21 03:55 foo2.txt
dd if=/dev/urandom of=foo bs=14MB count=1
head -c 14MB /dev/urandom > foo
dd if=/dev/zero of=foo.txt bs=14MB count=1
In all of the above examples, the file will be 14*1000*1000 if you want 14*1024*1024 , replace MB with M . For example:
dd if=/dev/urandom of=foo bs=14M count=1 head -c 14M /dev/zero > foo
fallocate only deals in bytes, so you’d have to do (14*1024*1024=14680064)