Как создать файл в 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.