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

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が存在する場合のみ、タイムスタンプが更新されます。存在しない場合は、何も起きません。

関連記事:
カテゴリの一覧へ
新着記事
touch --no-createオプションの使い方を完全ガイド!初心者でもわかるファイルの新規作成防止法
basenameのSUFFIX指定で拡張子を除いてファイル名を取得する方法を解説!初心者向けLinuxコマンド講座
mv -tオプションの使い方|移動先ディレクトリを先に指定する便利な方法
lsコマンドの-rオプション|逆順(降順)でファイルを並べる方法を初心者向けに解説!
人気記事
No.1
Java&Spring記事人気No1
cdコマンドとは?Linuxでディレクトリを移動する基本を初心者向けに解説
No.2
Java&Spring記事人気No2
lsコマンドの-lオプションでファイルの詳細情報を一覧表示しよう!初心者でもわかる使い方と意味を徹底解説
No.3
Java&Spring記事人気No3
rm -Rオプションとは?初心者でもわかる再帰的にディレクトリを削除する方法
No.4
Java&Spring記事人気No4
Linuxコマンドpwd --help解説|オプション一覧を表示して使い方を確認する方法