Как создать пустой файл из командной строки

Ответы:

237

Используйте touchкоманду:

The touch utility sets the modification and access times of files to the
current time of day. If the file doesn't exist, it is created with
default permissions.

Пример:

touch newfile
Исайя
источник
14
Вы также можете использовать touch newfile.txtили другое расширение (если вам нужно указать расширение).
получил
@gotqn для python touch newfile.py и для ruby ​​newfile.rb?
kouty
3
Но если он newfileуже существует и не пуст, то у touch newfileвас останется непустой файл. Может быть, не то, что вы хотели.
Камиль Гудесюн
@CamilleGoudeseune Я думаю, что если она newfileуже существует, touchкоманда просто обновит временную метку файла (для чего именно предназначена команда) без редактирования содержимого файла.
C0deDaedalus
Вам не нужно так думать; Это верно! Но это не то, что задал вопрос.
Камиль Гудесюн
81
> newfile

Также создаст пустой файл. Если файл уже существует, он будет усечен (очищен). Чтобы сохранить содержимое файла, используйте >>для добавления, как в:

>> file

Даже если файл существует, его содержимое не будет затронуто.

Изменить : Если у вас нет контента для ввода, это быстрее:

user@host$ :> newfile
user@host$ :>> new_or_existing_file

Запись. :это команда здесь. Это не часть приглашения.

Балки
источник
Теперь это ново. Это специфично для Bash?
Чепанг
Я так не думаю. Любая оболочка, которая позволяет перенаправление потока вывода в файл, должна поддерживать это. Это урезает файл, если он уже существует. Touch безопасно использовать, если вы не хотите очищать его.
балки
Ух ты, теперь я думаю, это называется обманом системы
banarun
12
cat /dev/null > file1.ext 

точный путь есть и другой путь

echo "" > file2.ext 

Разница в том, что file1.ext будет нулевым байтом, а file2.ext будет одним байтом. Вы можете проверить это

ls -l file*.*
indianwebdevil
источник
10
Нет, 'echo "">' не создает пустой файл, он создает файл, содержащий новую строку. Если по какой-то причине вы хотите использовать echo для создания пустого файла, вам придется использовать 'echo -n ""> или просто «echo -n>»
andol
7

Используя vimредактор, вы также можете создать пустой файл.

vim filename

Затем сохранить

:wq
nrider
источник
Ну, в этом случае не любой текстовый редактор, но vim.
Нефенте
2

Команда

echo -n > file

создает пустой файл, если ваша версия echoподдерживает ключ -n.

Или вы могли бы использовать printf

printf '' > file
AB
источник
0

Python однострочный:

$ python -c 'import sys,os;f=sys.argv[1];os.utime(f,None) if os.path.exists(f) else open(f,"a").close' myfile.txt

В основном, реализация Python touch.

Мы можем сделать это короче с этим:

$ python -c 'import sys,os;f=sys.argv[1];'$'\n''with open(f,"a"): os.utime(f,None)' mysecondfile.txt 
Сергей Колодяжный
источник