Как создать файл в Linux из окна терминала? [закрыто]


449

Какой самый простой способ создать файл в терминале Linux?


1
$>newfileтакже может создать файл.
— EsmaeelE

Ответы:


577

В зависимости от того, что вы хотите, чтобы файл содержал:

  • touch /path/to/file для пустого файла
  • somecommand > /path/to/file для файла, содержащего вывод какой-либо команды.

      eg: grep --help > randomtext.txt
          echo "This is some text" > randomtext.txt
  • nano /path/to/fileили vi /path/to/file(или any other editor emacs,gedit etc)
    либо открывает существующий файл для редактирования, либо создает и открывает пустой файл для ввода, если он не существует


51
также printf "some long message\nwith newlines\n" > file. Всем удачи.
— Shellter

1
UNIX - это не среда командной строки, а семейство (очень разных) ОС. Тем не менее, да, это должно работать на большинстве Unices
— Eugen Rieck

4
touchбудет работать в UNIX, потому что это стандартный инструмент. somecommandПример будет работать , потому что он использует стандартный синтаксис. nanoОбразец не может работать , так как редактор по имени nanoне может быть установлен (нано не нормируется). Стандартный редактор есть edи может быть использован вместо nano, или вы можете использовать его, $EDITORчтобы использовать пользовательский или системный текстовый редактор по умолчанию, если таковой имеется.
— Сорпигал

14
Кроме того, вы можете просто сказать >/path/to/fileсоздать пустой файл, даже если у вас его нет touch.
— Сорпигал

2
@EugenRieck Что если он скажет, что в разрешении отказано
— 123


92

Создайте файл, используя cat

$ cat > myfile.txt

Теперь просто введите в файл все, что вы хотите:

Hello World!

CTRL-D для сохранения и выхода


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

Вы также можете ничего не печатать.
— Бинг Чжао

Когда я попытался cat /etc/systemd/system/sample.service, он сказал «нет такого файла или каталога», вместо того, чтобы создавать новый файл sample.service.
— TylerH

@TylerH cat /etc/systemd/system/sample.serviceвыводит файл на консоль, cat > /etc/systemd/system/sample.serviceперенаправляет стандартный ввод в файл (вот почему вам нужно закрыть стандартный ввод, нажав control-d.
— Джерри Иеремия,

40

Есть несколько возможных решений:

Создать пустой файл

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.

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



17

Как создать текстовый файл в Linux:

  • Использование touchдля создания текстового файла:$ touch NewFile.txt
  • Использование catдля создания нового файла: $ cat NewFile.txt
    файл создан, но он пуст и все еще ожидает ввода от пользователя. Вы можете ввести любой текст в терминал, и после этого CTRL-D закроет его, или CTRL-C выведет вас.
  • Просто используя > для создания текстового файла:$ > NewFile.txt
  • Наконец, мы можем использовать любое имя текстового редактора и затем создать файл, такой как:
    nano MyNewFile vi MyNewFile NameOfTheEditor NewFileName


15

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

touch filename

Чтобы записать файл в командной строке, вы можете использовать echoили printf:

echo "Foo" > filename
printf "Foo" > filename

Может быть, у вас могут быть проблемы с разрешениями. Если вы получаете следующую ошибку: bash: filename: Permission deniedвам нужно использовать sudo bash -c 'echo "Foo" > filename', как описано здесь: /ubuntu/103643/cannot-echo-hello-x-txt-even-with-sudo


14

1-й метод

echo -n > filename.txt

2-й метод

> filename.txt

3-й метод

touch filename.txt

Для просмотра содержимого файла

vi filename.txt

2 метод is type-> "> filename.txt"
— shashwat gupta

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






4

Если вы, ребята, пытаетесь создать новый файл, но он говорит: 'File does not exist'это просто потому, что вы также обращаетесь к каталогу, который еще не существует. Сначала вы должны создать все несуществующие каталоги, используя mkdir /path/to/dirкоманду.


0

Создать пустой файл с правами владения и правами с помощью install.

sudo install -v -oUSER -gGROUP -m640 /dev/null newFile.txt

Это sudoполезно во многих сценариях, но не является прямой частью ответа на вопрос ОП.
— tripleee

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

Да, есть сценарии, подобные тем, которые, строго говоря, не соответствуют тому, что просил ФП.
— трипл

0

Один из самых простых и быстрых способов

$ vim filename
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.