Як створити файл в 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,. Успіхів усім.
обстріл

1
UNIX - це не середовище командного рядка, а сімейство (дуже різних) ОС. Це сказало: Так, це повинно працювати на більшості
Юніс

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перенаправляє стандартний вхід до файлу (саме тому вам потрібно закрити стандартний вхід, натиснувши клавішу управління.
Джеррі Єремія

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 метод type-> "> filename.txt"
shashwat gupta

Питання не тематичне для переповнення стека, як визначено у довідковому центрі . Не відповідайте на такі запитання; натомість слід позначити їх для уваги, і вони будуть закриті або перенесені належним чином.
Toby Speight






4

Якщо ви, хлопці, намагаєтесь створити новий файл, але він говорить: 'File does not exist'це просто тому, що ви також отримуєте доступ до каталогу, який ще не існує. Спершу потрібно створити всі неіснуючі каталоги, використовуючи mkdir /path/to/dirкоманду.


0

Щоб створити порожній файл із правом власності та правами за допомогою установки.

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

Це sudoкорисно у багатьох сценаріях, але не є безпосередньо частиною відповіді на питання ОП.
трійка

Це потрібно, якщо ви не ім'я користувача, який вам потрібен файл, який належить або не є членом групи.
LinuxGuru

Так, є такі сценарії, які, однак, строго говорять не так, як просила ОП.
трійка

0

Один з найпростіших способів і швидкий

$ vim filename
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.