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

touch -cオプションの使い方を完全ガイド!初心者でもわかるファイルの存在確認

touch -cオプション|ファイルが存在しない場合は新規作成しない
touch -cオプション|ファイルが存在しない場合は新規作成しない

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

生徒

「Linuxでtouchコマンドを使ってるんですが、ファイルが勝手に作られちゃうのが困るんです…」

先生

「それなら、-cオプションを使ってみるといいですよ。ファイルが存在しないときに新しく作られないようにできます。」

生徒

「えっ、それってファイルがあるかどうか確認したいときにも使えるんですか?」

先生

「そうなんです。確認や更新のときに便利ですよ。使い方を丁寧に解説しましょう!」

1. touchコマンドとは?

1. touchコマンドとは?
1. touchコマンドとは?

touchコマンドは、Linux(リナックス)で空のファイルを作成したり、すでにあるファイルのタイムスタンプ(更新日時)を変更したりするコマンドです。よく「とりあえず空のファイルがほしい」というときや、ファイルがアクセスされたかどうかを調べるときにも使われます。

たとえば、以下のように使います:


touch sample.txt

このコマンドを実行すると、sample.txtというファイルがなければ新しく作られます。すでにある場合は、ファイルの「更新日時」だけが今の時間に変更されます。

2. -cオプションの意味とは?

2. -cオプションの意味とは?
2. -cオプションの意味とは?

-cオプション(別名--no-create)は、ファイルが存在しない場合は新しく作成しないという意味です。つまり「ファイルがなければ放置、あれば更新だけする」という動きになります。

このオプションの使い道としては:

  • 特定のファイルが存在するかだけを確認したいとき
  • 余計なファイルを作りたくないとき
  • スクリプトの中でエラーを防ぎたいとき

たとえば、以下のように使います。


touch -c sample.txt

この場合、sample.txtが存在すれば「更新日時」が変わります。存在しなければ、何も起きません。

3. 実際の動作を確認してみよう

3. 実際の動作を確認してみよう
3. 実際の動作を確認してみよう

それでは、コマンドの動作を具体的に見てみましょう。

(1)ファイルが存在しない場合

まず、ファイルが存在しない状態でtouch -cを実行してみましょう。


rm -f test1.txt
touch -c test1.txt
ls test1.txt
ls: cannot access 'test1.txt': No such file or directory

ご覧のとおり、ファイルは新しく作成されていません。

(2)ファイルが存在する場合

次に、ファイルがすでにある状態で実行してみましょう。


touch test2.txt
ls -l test2.txt
-rw-r--r-- 1 user user 0 9月 16 14:00 test2.txt

sleep 3
touch -c test2.txt
ls -l test2.txt
-rw-r--r-- 1 user user 0 9月 16 14:00 test2.txt

このように、ファイルが存在する場合は、ファイルの「更新日時」が変更されます。

4. -cオプションと通常のtouchの違い

4. -cオプションと通常のtouchの違い
4. -cオプションと通常のtouchの違い

touchだけで使った場合とtouch -cで使った場合の違いを比べてみましょう。

通常のtouch(ファイルがなければ作成)


rm -f hello.txt
touch hello.txt
ls hello.txt
hello.txt

touch -c(ファイルがなければ無視)


rm -f hello2.txt
touch -c hello2.txt
ls hello2.txt
ls: cannot access 'hello2.txt': No such file or directory

このように、-cを付けるだけで、ファイルを作らずに済むようになります。

5. 他の便利なオプションとの組み合わせ例

5. 他の便利なオプションとの組み合わせ例
5. 他の便利なオプションとの組み合わせ例

touch -cは他のオプションと一緒に使うこともできます。たとえば、タイムスタンプを指定する-tオプションと組み合わせることで、日時を変更することもできます。

以下は、日時を「2025年1月1日 00:00:00」に設定する例です。


touch -c -t 202501010000.00 test.txt

このように指定すれば、ファイルが存在していればその日時に変更され、存在しなければ何もしません。

6. スクリプトでの活用例

6. スクリプトでの活用例
6. スクリプトでの活用例

シェルスクリプトの中でtouch -cを使うと、ファイルが存在する場合だけ処理したいときに便利です。たとえば、ログファイルの確認や、設定ファイルの更新などに使えます。


#!/bin/bash
file="/etc/sample.conf"
touch -c "$file"

このスクリプトでは、/etc/sample.confが存在する場合のみ、タイムスタンプが更新されます。存在しない場合は、何も起きません。

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

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

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

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

touchコマンドは、Linuxでファイルを作成したり、既存のファイルの更新日時(タイムスタンプ)を変更したりするための基本的なコマンドです。
関連記事:
カテゴリの一覧へ
新着記事
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でファイルやディレクトリの詳細情報を確認する基本