Как создать файл в Linux из терминала? [закрыто]
Проблема: Закрытый вопрос без подробностей
Мой вопрос на Stack Overflow был закрыт с пометкой о том, что ему не хватает деталей или ясности, и сейчас он не принимает ответов. Это произошло 5 лет назад. Я хотел бы узнать: каков самый простой способ создать файл в терминале Linux?
Я понимаю, что вопрос нуждается в доработке, но не знаю, какие именно детали стоит добавить. Может быть, кто-то сможет подсказать, какие аспекты стоит уточнить или что еще включить, чтобы сделать мой вопрос более понятным и приемлемым для сообщества?
Спасибо за помощь!
5 ответ(ов)
В зависимости от того, что вы хотите, чтобы файл содержал:
Используйте
touch /path/to/file
, чтобы создать пустой файл.Используйте
somecommand > /path/to/file
, чтобы файл содержал вывод какой-либо команды.Например: grep --help > randomtext.txt echo "Это какой-то текст" > randomtext.txt
Вы можете использовать
nano /path/to/file
илиvi /path/to/file
(или любой другой редактор, напримерemacs
,gedit
и т.д.), чтобы открыть существующий файл для редактирования или создать и открыть новый пустой файл, если он не существует.
Чтобы создать файл с помощью команды cat
, выполните следующую команду в терминале:
$ cat > myfile.txt
После этого вы можете ввести текст, который хотите записать в файл, например:
Hello World!
Когда закончите вводить текст, нажмите CTRL-D
, чтобы сохранить файл и выйти из режима ввода.
Существует несколько возможных решений:
Создание пустого файла
touch file
>file
echo -n > file
printf '' > file
Версия с echo
будет работать только в том случае, если ваша версия echo
поддерживает флаг -n
, который подавляет добавление символа новой строки. Это нестандартное дополнение. Остальные примеры будут работать в POSIX-оболочке.
Создание файла, содержащего только символ новой строки
echo '' > file
printf '\n' > file
Это является допустимым "текстовым файлом", так как он заканчивается на новую строку.
Запись текста в файл
"$EDITOR" file
echo 'text' > file
cat > file <<END \
text
END
printf 'text\n' > file
Эти способы эквиваленты. Команда $EDITOR
предполагает, что у вас определён интерактивный текстовый редактор в переменной окружения EDITOR и что вы вводите эквивалентный текст интерактивно. Версия с cat
предполагает наличие символа новой строки после \
и после каждой следующей строки. Кроме этого, все эти методы будут работать в POSIX-оболочке.
Конечно, существуют и многие другие способы записи и создания файлов.
Вы можете создать пустой файл, используя команду touch
в терминале. Вот пример команды, которая создаст файл с именем myfile.txt
:
touch myfile.txt
После выполнения этой команды у вас будет пустой файл под указанным именем.
Вы можете использовать команду touch
, как уже упоминали другие:
touch filename
Чтобы записать данные в файл из командной строки, вы можете использовать echo
или printf
:
echo "Foo" > filename
printf "Foo" > filename
Имейте в виду, что у вас могут возникнуть проблемы с правами доступа. Если вы видите следующую ошибку: bash: filename: Permission denied
, вам нужно использовать sudo
, чтобы выполнить команду с повышенными правами, например:
sudo bash -c 'echo "Foo" > filename'
Дополнительную информацию можно найти здесь: https://askubuntu.com/questions/103643/cannot-echo-hello-x-txt-even-with-sudo
Как изменить цвет вывода echo в Linux
Как перенаправить вывод в файл и на экран (stdout)
Как работает "cat << EOF" в bash?
Как использовать 'grep' для непрерывного потока?
Как разделить большой текстовый файл на меньшие файлы с равным количеством строк?