コマンドラインから空のファイルを作成する方法


190

コマンドラインから空のファイルを作成するにはどうすればよいですか?

回答:


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の@gotqn?
kouty

3
ただし、newfile既に存在touch newfileし、空でない場合は、空でないファイルが残ります。たぶんあなたが望んでいたものではありません。
カミーユ・グドゥスヌ

@CamilleGoudeseune newfile既に存在する場合、touchコマンドはファイルの内容を編集せずにファイルのタイムスタンプを更新します(これはコマンドそのものです)。
C0deDaedalus

あなたはそれを考える必要はありません。それは本当です!しかし、それは質問が尋ねたものではありません。
カミーユ・グドゥスヌ

81
> newfile

空のファイルも作成します。ファイルが既に存在する場合、切り捨てられます(空になります)。ファイルの内容を保持するには、次のよう>>に追加に使用します。

>> file

ファイルが存在する場合でも、内容は変更されません。

編集:入力するコンテンツがない場合、この方が高速です。

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

注意。:ここにコマンドがあります。これはプロンプトの一部ではありません。


今、それは新しいです。bash固有ですか?
シェパン

そうは思いません。出力ストリームをファイルにリダイレクトできるシェルは、これをサポートする必要があります。これにより、ファイルが既に存在する場合は切り捨てられます。タッチは空にしたくない場合に使用しても安全です。
バルキ

うわー、今私が思うに、このシステムを不正行為と呼ばれている
banarun

12
cat /dev/null > file1.ext 

正確な方法は別の方法もあります

echo "" > file2.ext 

違いは、file1.extは0バイトで、file2.extは1バイトです。これを確認するには

ls -l file*.*

10
いいえ、 'echo "">'は空のファイルを作成せず、改行を含むファイルを作成します。何らかの理由であなたは空のファイルを作成するために、エコーを使用したい場合は、単に「> -nエコー」「> 『が』エコー-n」を使用する必要があります
andol

7

vimエディターを使用して、空のファイルを作成することもできます。

vim filename

次に保存する

:wq

さて、この場合ではない任意のテキストエディタではなくvim
ネフェンテ

2

コマンド

echo -n > file

のバージョンがecho-nスイッチをサポートしている場合、空のファイルを作成します。

または使用できます printf

printf '' > file

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 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.