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

449

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

raffian
источник
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 для сохранения и выхода

raffian
источник
Я предпочитаю использовать 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.

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

sorpigal
источник
25

Также создайте пустой файл:

touch myfile.txt
andreapier
источник
17

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

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

ха-ха! это просто! попробуй это:

$ touch filename
Роман Ньюаза
источник
1
Это работало с sudo, поэтому я смог создать новый файл в системной папке.
Патриция
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

user3753202
источник
14

1-й метод

echo -n > filename.txt

2-й метод

> filename.txt

3-й метод

touch filename.txt

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

vi filename.txt
шашват гупта
источник
2 метод is type-> "> filename.txt"
shashwat gupta
Вопрос не по теме переполнения стека, как определено в справочном центре . Пожалуйста, не отвечайте на такие вопросы; вместо этого вы должны отметить их для внимания, и они будут закрыты или перенесены соответствующим образом.
Тоби Спейт
12

Это создаст пустой файл с текущей отметкой времени

touch filename
Кристи Джордж
источник
10
touch filename

для permission deniedошибки используйте sudoкоманду как:

sudo touch filename
Прадип Кумар Прабахаран
источник
6

Мне нравится нано -редактор командной строки (текст):

nano filename
Сэм Перри
источник
4

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

Себастьян
источник
0

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

sudo install -v -oUSER -gGROUP -m640 /dev/null newFile.txt
LinuxGuru
источник
Это sudoполезно во многих сценариях, но не является прямой частью ответа на вопрос ОП.
tripleee
Это необходимо, если вы не являетесь тем пользователем, которому нужен файл, принадлежащий или не являющийся членом группы.
LinuxGuru
Да, есть сценарии, подобные тем, которые, строго говоря, не соответствуют тому, что просил ФП.
трипл
0

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

$ vim filename

источник