🙏
Linux touchコマンドをEnvaderで学ぶ
今回もEnvader
を利用して、Linuxコマンドについて学習です。
今回取り組んだのは、Linuxでも基本中の基本であろうtouch
コマンドです。
Envader is 何?という方のために、下記にリンクを貼っておきますので参考までにどうぞ。
Envader
とは、Linux環境を環境構築なしで気軽に学べるオンライン学習サービスです。
PCとブラウザさえあればどなたでも利用できます。
touchコマンド
ファイルの作成や、タイムスタンプの更新などをする時に利用するコマンド。
私はファイル作成の時に使うことが多いのですが、紹介されている記事や書籍などを見てみると、ファイルのタイムスタンプの更新、変更に使用する、とされていることが多いです。
ファイルにはタイムスタンプと呼ばれる、アクセス時刻と修正時刻
が存在していて、ls
コマンドを使用することで確認できます。
# 2021 9月24日の所がタイムスタンプ
envader@172-19-1-2:~$ ls -la
total 32
drwxr-xr-x 1 envader envader 4096 9月 24 2021 .
drwxr-xr-x 1 root root 4096 9月 24 2021 ..
-rw-r--r-- 1 envader envader 220 5月 15 2017 .bash_logout
-rw-r--r-- 1 envader envader 4198 9月 15 2021 .bashrc
-rw-r--r-- 1 envader envader 675 5月 15 2017 .profile
drwxr-xr-x 2 root root 4096 9月 24 2021 .ssh
-rw-r--r-- 1 envader envader 913 9月 15 2021 .tmux.conf
-rw-r--r-- 1 envader envader 0 9月 24 2021 time.txt
基本的な使い方
touch 存在しているファイル名(または作成したいファイル名)
存在しているファイルのタイムスタンプを更新
存在しているファイル名を入力して実行すると、そのファイルのタイムスタンプが更新されます。
envader@172-19-1-2:~$ ls -l
total 0
-rw-r--r-- 1 envader envader 0 9月 24 2021 time.txt
# タイムスタンプを更新する
envader@172-19-1-2:~$ touch time.txt
# タイムスタンプが今日の日付に更新された
envader@172-19-1-2:~$ ls -l
total 0
-rw-r--r-- 1 envader envader 0 4月 8 19:56 time.txt
新しくファイルを作成
新しくファイルを作成します。
envader@172-19-1-2:~$ touch kobakichi.txt
envader@172-19-1-2:~$ ls -l
total 0
-rw-r--r-- 1 envader envader 0 4月 8 20:00 kobakichi.txt
-rw-r--r-- 1 envader envader 0 4月 8 19:56 time.txt
新しいファイルが作成できた。
オプションを使ってタイムスタンプを更新する
オプション | 説明 |
---|---|
-t | タイムスタンプを[CC]YY]MMDDhhmm[SS]に変更する CC: 西暦の上2桁(省略可) YY: 西暦の下2桁(省略可) MM: 月 DD: 日 hh: 時 mm: 分 SS: 秒(省略可) |
-a | アクセス時刻だけ変更する |
-d | 日時を文字列で指定して、タイムスタンプを更新する。 |
-c | 存在しないファイル名を指定しても、空の新規ファイルを作成しない |
-m | 修正時刻だけを変更する |
オプションを試してみる
# 2019年5月9日の12時30分にタイムスタンプを変更
envader@172-19-1-2:~$ touch -t 201905091230 kobakichi.txt
envader@172-19-1-2:~$ ls -l
total 0
-rw-r--r-- 1 envader envader 0 5月 9 2019 kobakichi.txt
-rw-r--r-- 1 envader envader 0 4月 8 19:56 time.txt
# -dで文字列として日付を指定する 文字列なので""で囲む
envader@172-19-1-2:~$ touch -d "2016-9-15 20:15" time.txt
envader@172-19-1-2:~$ ls -l
total 0
-rw-r--r-- 1 envader envader 0 5月 9 2019 kobakichi.txt
-rw-r--r-- 1 envader envader 0 9月 15 2016 time.txt
# -cで空の新規ファイルを作成しない
envader@172-19-1-2:~$ touch -c kiba.txt
envader@172-19-1-2:~$ ls
kobakichi.txt time.txt
# kiba.txtは作成されていない
まとめ
今回はtouch
コマンドについて実践しながら学びました。
こうやってオプションを指定してみると、実はタイムスタンプの存在が大きいことが分かりました。
普段はファイルの事しか頭にありませんが、実際に業務で使用する際にはタイムスタンプが重要になってくる場面が出てくるのかも知れませんね。
最後まで読んでいただきありがとうございました。
Discussion