Linuxの多彩なコマンドの中で、ファイルのタイムスタンプをコピーする方法について解説します。Linuxのタイムスタンプとは、ファイルやディレクトリが作成・変更・アクセスされた日時を示す情報です。これを別のファイルにコピーすることで、ファイルの変更履歴を保持しつつ新しい環境に移行する際などに役立ちます。
目次
基本コマンド:touch
Linuxの`touch`コマンドは、ファイルのアクセスや修正のタイムスタンプを変更するためのコマンドです。これを利用して、あるファイルのタイムスタンプを別のファイルにコピーすることができます。
touch -r source.txt target.txt # source.txtのタイムスタンプをtarget.txtにコピー
コマンドの詳細解説
このコマンドでは`-r`オプションを使用しています。このオプションは、参照するファイルの名前を指定することで、そのファイルのタイムスタンプを取得し、別のファイルにコピーします。この方法で、ファイルの日時情報を保持したまま別のファイルに移すことができます。
注意点
この方法ではファイルの内容はコピーされません。内容とタイムスタンプを同時にコピーする場合、`cp`コマンドを使用する必要があります。
応用例
1. 複数のファイルに対してタイムスタンプをコピー
for file in *.txt; do
touch -r source.txt "$file" # source.txtのタイムスタンプを全ての.txtファイルにコピー
done
2. サブディレクトリのファイルにもタイムスタンプをコピー
find /path/to/directory -type f -exec touch -r source.txt {} \;
3. 特定の拡張子のファイルのみにタイムスタンプをコピー
find /path/to/directory -type f -name "*.jpg" -exec touch -r source.txt {} \;
4. タイムスタンプのみをバックアップ
バックアップ時に内容だけでなく、タイムスタンプも保存したい場合があります。次のコマンドでファイルのタイムスタンプ情報をテキストファイルとして保存できます。
stat -c '%y %n' source.txt > timestamp_backup.txt
まとめ
Linuxには多くの強力なコマンドが存在しますが、`touch`コマンドを使うことで簡単にファイルのタイムスタンプをコピーすることができます。特にシステム移行やバックアップ時には非常に便利です。この知識を活かして、より効率的なファイル管理を行いましょう。
コメント