как создать файл из консоли

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Ответить
Аватара пользователя
sentrydroid
Сообщения: 9

как создать файл из консоли

Сообщение sentrydroid »

как создать файл из консоли?
Спасибо сказали:
Аватара пользователя
mark
Бывший модератор
Сообщения: 2055
Статус: ...
ОС: Windows 7
Контактная информация:

Re: как создать файл из консоли

Сообщение mark »

touch
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: как создать файл из консоли

Сообщение Liksys »

touch "filename" -------создать пустой файл
cat > "filename" --------и ввод закончить ctrl+z
vim "filename" --------создать или редактировать "filename"
Спасибо сказали:
Аватара пользователя
Arceny
Сообщения: 378
ОС: Debian Lenny/Sid
Контактная информация:

Re: как создать файл из консоли

Сообщение Arceny »

nano filename
echo "текст" > filename
Спасибо сказали:
Аватара пользователя
Alexxx
Сообщения: 892
Статус: --==XXX==--
ОС: Archlinux current

Re: как создать файл из консоли

Сообщение Alexxx »

Ещё mcedit или mcedit file.txt.
Ну и dd if=/dev/zero of=file.txt count=размер_файла.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7274
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: как создать файл из консоли

Сообщение alv »

Интересно получилось - позвольте суммировать высказывания, м.б. для какого фака сгодится.
И так, вопрос формулируем следующим образом:
как создать файл средствами шелла, без изспользования редакторов или иных программ?

Самый простой способ создать пустой файл
touch filename

Если требуется создать пустой файл фиксированного размера (например, файл своппинга), можно воспользоваться командой
dd if=/dev/zero of=filename count=размер_файла

Для создания файла с контентом можно применить echo и cat
Первая команда больше подходит для создания однострочных файлов:
echo "содержание" > filename
заключение содержания в кавычки в bash не обязательно, но в принципе желательно

Для создания многострочных файлов имхо удобнее использовать cat

cat > filename (Enter)
ввод текста, как в редакторе, (Enter) разделяет строки, Control+D или Control+Z после последнего (Enter) завершают файл

М.б. то еще вспомнит способы создания файлов и опишет ситуации, когда они предпочтительны?
Спасибо сказали:
Аватара пользователя
pzp-5
Сообщения: 558
Статус: Главный модератор "Пингвинария" на Лафоксе.

Re: как создать файл из консоли

Сообщение pzp-5 »

Очень наивный способ в mc путем операции копирования (но часто пользуюсь):
Становлюсь на какой-то маленький файл, F5, в поле "куда копировать" указываю имя нового файла, становлюсь на него, F4, пару-тройку раз F8 (удаляю содержимое предыдущего файла),и все - имею пустой файл, уже открытый для редактирования в mcedit.
Достоинством способа считаю, что кроме имени файла никаких команд набирать не надо.
Угадайте: где на фотографии, которая представляет мой аватавр, спрятана птичка?
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: как создать файл из консоли

Сообщение Liksys »

echo "This is a new file, creator - $USER" > /tmp/voidfile.$USER

#!/bin/bash
cp /tmp/voidfile.$USER $2

После можно создавать пустой файл по шаблону определенного пользователя, при этом у каждого пользователя будет свой шаблон. Первую команду надо прописать в сценарий инициализации каждого пользователя, скрипт положить в /bin
Спасибо сказали:
snake
Бывший модератор
Сообщения: 677
Контактная информация:

Re: как создать файл из консоли

Сообщение snake »

pzp-5 писал(а):
14.07.2006 11:05
Очень наивный способ в mc путем операции копирования (но часто пользуюсь):
Становлюсь на какой-то маленький файл, F5, в поле "куда копировать" указываю имя нового файла, становлюсь на него, F4, пару-тройку раз F8 (удаляю содержимое предыдущего файла),и все - имею пустой файл, уже открытый для редактирования в mcedit.
Достоинством способа считаю, что кроме имени файла никаких команд набирать не надо.

все же touch "имя файла" -- гораааздо быстрее. :rolleyes:
А через MC нажать Shift+F4 религия не позволяет? Обязательно нужно потратить время и найти маленький файл? :P

(Liksys @ Jul 14 2006, в 11:48) писал(а):скрипт положить в /bin

Кашернее в /usr/local/bin Нечего подобным скриптам среди системных утилит делать, для них ведь специальное место уже отведено. ;)
В реальности все не так, как на самом деле...
JabberID: zmeyk@jabber.ru
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: как создать файл из консоли

Сообщение Liksys »

Да, точно. Извиняюсь. Написал первое, что пришло в голову :)
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU
Контактная информация:

Re: как создать файл из консоли

Сообщение sash-kan »

самая короткая команда создания пустого файла:

Код: Выделить всё

:>/путь/к/файлу


(Liksys @ Jul 14 2006, в 10:48) писал(а):echo "This is a new file, creator - $USER" > /tmp/voidfile.$USER

а каталог /tmp для таких вещей использовать совсем некошерно.
потому что каталог /tmp должен очищаться при загрузке системы.
я, конечно, знаю по крайней мере один дистрибутив, в котором этого не происходит по умолчанию.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: как создать файл из консоли

Сообщение Liksys »

sash-kan писал(а):
14.07.2006 19:48
самая короткая команда создания пустого файла:

Код: Выделить всё

:>/путь/к/файлу


(Liksys @ Jul 14 2006, в 10:48) писал(а):
echo "This is a new file, creator - $USER" > /tmp/voidfile.$USER

а каталог /tmp для таких вещей использовать совсем некошерно.
потому что каталог /tmp должен очищаться при загрузке системы.
я, конечно, знаю по крайней мере один дистрибутив, в котором этого не происходит по умолчанию.

Именно поэтому эту команду прописывают в сценарий инициализации юзера. Хотя можно сунуть и в домашний каталог.
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: как создать файл из консоли

Сообщение t.t »

(Liksys @ Jul 13 2006, в 23:03) писал(а):cat > "filename" --------и ввод закончить ctrl+z
(alv @ Jul 14 2006, в 07:16) писал(а):Control+D или Control+Z после последнего (Enter) завершают файл
Да какой Ctrl+Z ?? Ладно, Liksys мог не знать, но ты меня удивляешь.. Ctrl+Z -- это приостановка текущего процесса, чтобы затем можно было либо, поработав в шелле, вернуться в этот процесс командой fg, либо отправить его в фон командой bg с возможным последующим disown. А завершение ввода -- это только Ctrl+D. Может, это ты с досом перепутал? Вот там кажись да -- вместо Ctrl+D как раз CTRL+Z используется...

(snake @ Jul 14 2006, в 11:20) писал(а):Кашернее в /usr/local/bin
Или в ~/bin
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7274
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: как создать файл из консоли

Сообщение alv »

2t.t
ты прав, некорректно выразился
но эффект один и тот же и при D, и при Z
более того, Control+Z дает возможность потом вызвать тот же файл (через fg) и внести в него дополнение

PS иногда удобно

(t.t @ Jul 15 2006, в 12:06) писал(а):Или в ~/bin

в данном контексте (шаблоны для каждого пользователя) это неудобно, потому как право исполнения в ~/bin по нормальному должен иметь данный юзер
а вот если привязать шаблон к собственной переменной вроде $FILETYPE (txt, html - ну, там по задачам), то тогда им в ~/bin будет самое место
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: как создать файл из консоли

Сообщение t.t »

(alv @ Jul 15 2006, в 11:42) писал(а):2t.t
ты прав, некорректно выразился
но эффект один и тот же и при D, и при Z
более того, Control+Z дает возможность потом вызвать тот же файл (через fg) и внести в него дополнение

PS иногда удобно
Всё же в этом контексте Ctrl+Z упоминать, думаю, незачем. А если надо что-то добавить позже к тому же файлу, то можно ведь cat >>туда-же, и процесс лишний висеть не будет в промежутке. Это вот если текстовый редактор какой -- тогда имеет смысл Ctrl+Z, а для cat -- абсолютно незачем.

(alv @ Jul 15 2006, в 11:42) писал(а):в данном контексте (шаблоны для каждого пользователя) это неудобно, потому как право исполнения в ~/bin по нормальному должен иметь данный юзер
А, да, проглядел, что это логино-зависимый скрипт. Тогда конечно.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
0xDEAD
Сообщения: 54
ОС: Ubuntu Linux

Re: как создать файл из консоли

Сообщение 0xDEAD »

А если просто пустой файл, без текста, самый быстрый способ - просто

Код: Выделить всё

>my_file
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7274
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: как создать файл из консоли

Сообщение alv »

0xDEAD писал(а):
15.07.2006 22:56
А если просто пустой файл, без текста, самый быстрый способ - просто

Код: Выделить всё

>my_file

а ведь верно, черт побери :)


(t.t @ Jul 15 2006, в 22:40) писал(а):Всё же в этом контексте Ctrl+Z упоминать, думаю, незачем.

в этом контексте, возможно, и не зачем
а так в чем польза такого приема:
сидишь вот, сочиняешь заметку о команде find
и делаешь файл примеров:

cat > find.txt
Ctrl+Z

выполнил пример, fg - поместил вывод в файл, Ctrl+Z, выполнил пример, fg - и так далее
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: как создать файл из консоли

Сообщение t.t »

(alv @ Jul 16 2006, в 06:13) писал(а):в этом контексте, возможно, и не зачем
а так в чем польза такого приема:
сидишь вот, сочиняешь заметку о команде find
и делаешь файл примеров:

cat > find.txt
Ctrl+Z

выполнил пример, fg - поместил вывод в файл, Ctrl+Z, выполнил пример, fg - и так далее
Ну, начнём с того, что в таком контексте удобнее, пожалуй, "find >", а не "cat >"; но это так, мелочи. А главное я ведь уже сказал:
Ctrl+Z
...
fg
ничем не лучше в данном контексте, чем
Ctrl+D
...
cat >>тот-же-файл
А вот чем хуже -- я сразу вижу: хуже в том случае, когда вдруг передумал что-то в этот файл добавлять; тогда нужно лишнее движение
fg
Ctrl+D
Не ты ли говорил, что здоровая лень -- признак профпригодности юниксоида? ;-)
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7274
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: как создать файл из консоли

Сообщение alv »

(t.t @ Jul 16 2006, в 15:31) писал(а):Не ты ли говорил, что здоровая лень -- признак профпригодности юниксоида? ;-)

Я. Говорил, говорю, и говорить буду :)
...
а потом оба они, не жалея сил и времени, бросились вычислять, что ленивее с точки зрения биомеханики :) :) :)
...
PS
find > в моем случае не лучше, потому что сначала нужно посмотреть, чего это он там find
можно конечно и tree - но тогда неудачный вывод прижется стирать :)
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: как создать файл из консоли

Сообщение t.t »

(alv @ Jul 16 2006, в 14:45) писал(а):а потом оба они, не жалея сил и времени, бросились вычислять, что ленивее с точки зрения биомеханики
Я тоже уже примерно об этом подумал :)

(alv @ Jul 16 2006, в 14:45) писал(а):можно конечно и tree
В смысле, tee

(alv @ Jul 16 2006, в 14:45) писал(а):тогда неудачный вывод прижется стирать
Логично. Но насчёт "find >" это я так, к слову. А вообще ты часто cat'ом тексты пишешь? :)
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7274
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: как создать файл из консоли

Сообщение alv »

2t.t
1) tee, конечно же
2) раньше часто - сейчас kate с терминальным окном для тех же целей пользую
но есть ведь люди, которые принципами не поступаются и KDE не ставят :)
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: как создать файл из консоли

Сообщение t.t »

(alv @ Jul 16 2006, в 15:29) писал(а):2) раньше часто - сейчас kate с терминальным окном для тех же целей пользую
но есть ведь люди, которые принципами не поступаются и KDE не ставят
Во-первых, чтобы пользоваться kate не обязательно ставить весь KDE (я вот, например, не ставлю :) ); во-вторых, насколько я помню, не только в нём есть встроенный терминал; а в третьих -- зачем обязательно встроенный? Я и в nano, запущенного в mlterm'е частенько из соседнего окна того же mlterm'а кусочки таскаю. А gpm, кстати, из одной консоли в другую не позволяет текст таскать? Никогда не пользовался -- во времена постоянного сидения в голой консоли у меня мыши почти никогда не было.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7274
Статус: Пенсионер в законе
ОС: Cintu
Контактная информация:

Re: как создать файл из консоли

Сообщение alv »

t.t писал(а):
16.07.2006 23:01
А gpm, кстати, из одной консоли в другую не позволяет текст таскать?

еще как позволяет - это было для меня одним из первых потрясающих впечатлений в линуксе
Спасибо сказали:
ig0r
Сообщения: 1

Re: как создать файл из консоли

Сообщение ig0r »

alv писал(а):
14.07.2006 08:16
Для создания файла с контентом можно применить echo и cat
Первая команда больше подходит для создания однострочных файлов:
echo "содержание" > filename
заключение содержания в кавычки в bash не обязательно, но в принципе желательно

Ну насчёт "однострочных файлов" не согласен
$echo "файл
который
содержит
много
строк" > myfile
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: как создать файл из консоли

Сообщение t.t »

(ig0r @ Jul 18 2006, в 20:28) писал(а):Ну насчёт "однострочных файлов" не согласен
"команда больше подходит для создания однострочных файлов"
ку?
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
Liksys
Сообщения: 2910

Re: как создать файл из консоли

Сообщение Liksys »

t.t писал(а):
15.07.2006 12:06
(Liksys @ Jul 13 2006, в 23:03) писал(а):cat > "filename" --------и ввод закончить ctrl+z
(alv @ Jul 14 2006, в 07:16) писал(а):Control+D или Control+Z после последнего (Enter) завершают файл
Да какой Ctrl+Z ?? Ладно, Liksys мог не знать, но ты меня удивляешь.. Ctrl+Z -- это приостановка текущего процесса, чтобы затем можно было либо, поработав в шелле, вернуться в этот процесс командой fg, либо отправить его в фон командой bg с возможным последующим disown. А завершение ввода -- это только Ctrl+D. Может, это ты с досом перепутал? Вот там кажись да -- вместо Ctrl+D как раз CTRL+Z используется...

(snake @ Jul 14 2006, в 11:20) писал(а):Кашернее в /usr/local/bin
Или в ~/bin

Посрамили... Я знал, но перепутал. Все время путаю. Сколько не пользовался. Просто кошмар. Не бейте ногами и пожалуйста не смейтесь :)
Спасибо сказали:
Ответить