カテゴリ: Linuxコマンド集 更新日: 2025/12/24

touch --no-createオプションの使い方を完全ガイド!初心者でもわかるファイルの新規作成防止法

touch --no-createオプション|-cと同じく新規作成を防ぐ方法
touch --no-createオプション|-cと同じく新規作成を防ぐ方法

先生と生徒の会話形式で理解しよう

生徒

「Linuxでtouchコマンドを使うと、存在しないファイルが勝手に作られちゃうのが困ってます…」

先生

「それなら、--no-createオプションを使えば、ファイルがなければ無視されるようになりますよ。」

生徒

「それって、-cオプションと同じなんですか?」

先生

「そうです。意味は同じですが、--no-createの方がわかりやすい表現なので、初心者にはおすすめです!」

1. touchコマンドの基本とは?

1. touchコマンドの基本とは?
1. touchコマンドの基本とは?

Linuxのtouch(タッチ)コマンドは、ファイルを新しく作成したり、既にあるファイルの更新日時(タイムスタンプ)を変更するための便利なコマンドです。パソコン初心者やプログラミング未経験の方にも扱いやすい基本的なコマンドの一つです。

以下のように使うと、ファイルが作成されます:


touch sample.txt

この操作によって、sample.txtが存在しなければ新規作成され、すでにある場合はその更新日時だけが最新になります。

2. --no-createオプションとは?

2. --no-createオプションとは?
2. --no-createオプションとは?

--no-create(ノー・クリエイト)オプションは、touchコマンドにおいてファイルが存在しない場合は作成しないという動きをします。つまり、ファイルがあれば更新するけど、なければ無視するという便利な動作になります。

このオプションは、-cオプションと同じ意味を持っていますが、より直感的に理解しやすいため、特にLinux初心者や学習中の方にはおすすめの表記です。

使い方はとても簡単です。


touch --no-create test.txt

3. ファイルが存在しない場合の動作確認

3. ファイルが存在しない場合の動作確認
3. ファイルが存在しない場合の動作確認

まずは、対象のファイルが存在しない状態で--no-createを実行してみましょう。


rm -f missing.txt
touch --no-create missing.txt
ls missing.txt
ls: cannot access 'missing.txt': No such file or directory

このように、ファイルは新規作成されず、無視されました。余計なファイルを作らずに済むので安心です。

4. ファイルが存在する場合の動作確認

4. ファイルが存在する場合の動作確認
4. ファイルが存在する場合の動作確認

次に、対象ファイルが存在する場合に、--no-createを使ったらどうなるかを見てみましょう。


touch existing.txt
sleep 2
touch --no-create existing.txt
ls -l existing.txt
-rw-r--r-- 1 user user 0 9月 16 14:01 existing.txt

このように、ファイルがあれば更新日時は変更されます。中身には影響しないので、ログファイルや設定ファイルの確認にも使えます。

5. -cオプションとの違いはあるの?

5. -cオプションとの違いはあるの?
5. -cオプションとの違いはあるの?

実は、--no-createは、-cオプションとまったく同じ動作をします。ただし、--no-createの方が言葉の意味がそのままなので、「新規作成しない」という意図が初心者にも伝わりやすいのです。

例:--no-create


touch --no-create config.txt

例:-c(同じ動作)


touch -c config.txt

どちらを使っても構いませんが、スクリプトやチュートリアルでは--no-createの方が親切です。

6. よくある使い方と注意点

6. よくある使い方と注意点
6. よくある使い方と注意点

--no-createは、シェルスクリプト(Linuxの自動化処理)や設定確認などの場面で使われます。特に、余計なファイルを作りたくないときに便利です。

たとえば、以下のような場合に有効です。

  • 特定の設定ファイルが存在するかどうかを確認したい
  • ログファイルを更新したいけど、新規作成はしたくない
  • スクリプトの中で不要なエラーを防ぎたい

以下のようなスクリプトで活用できます:


#!/bin/bash
if [ -f /etc/myapp.conf ]; then
  touch --no-create /etc/myapp.conf
fi

このスクリプトは、/etc/myapp.confがあるときだけ、更新日時を変えます。

7. 他のtouchオプションと組み合わせる

7. 他のtouchオプションと組み合わせる
7. 他のtouchオプションと組み合わせる

--no-createは、他のオプションと一緒に使うこともできます。たとえば、日時を指定する-tオプションと合わせて、「ファイルがある場合だけ特定の日時に変更する」といった使い方が可能です。


touch --no-create -t 202501010000.00 archive.log

この例では、archive.logというファイルがある場合に限り、「2025年1月1日0時0分」にタイムスタンプを変更します。

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Linuxのtouchコマンドは何をするためのコマンドですか?

Linuxのtouchコマンドは、空のファイルを新規作成したり、既存ファイルの更新日時(タイムスタンプ)を変更したりするための基本的なファイル操作コマンドです。
関連記事:
カテゴリの一覧へ
新着記事
New1
テキスト・データ処理
grep -hオプションの使い方|ファイル名を表示せずに一致行だけを出力する方法
New2
ファイル・ディレクトリ操作
find -mindepthオプションの使い方を完全ガイド!検索の最小深さを指定して効率よくファイル検索
New3
ファイル・ディレクトリ操作
Linuxのlsコマンド-iオプション完全ガイド!初心者でもわかるi-node番号の表示方法
New4
ファイル・ディレクトリ操作
stat --dereferenceオプションの使い方を解説|-Lと同じようにシンボリックリンク先の情報を表示しよう
人気記事
No.1
Java&Spring記事人気No1
ファイル・ディレクトリ操作
findコマンドの使い方を完全ガイド!初心者でもわかるLinuxのファイル検索の基本
No.2
Java&Spring記事人気No2
テキスト・データ処理
grepコマンドとは?Linuxで文字列を検索する基本をやさしく解説!
No.3
Java&Spring記事人気No3
ファイル・ディレクトリ操作
cd ~ の使い方を完全解説!ホームディレクトリへの移動方法と初心者向けLinuxコマンド入門
No.4
Java&Spring記事人気No4
ファイル・ディレクトリ操作
statコマンドとは?Linuxでファイルやディレクトリの詳細情報を確認する基本