=================================================================================================
tee
標準入力から読み込んだデータを、標準出力(画面)とファイルの両方に同時に出力する
1. 基本的な使い方
最も一般的な使い方は、他のコマンドの結果をパイプ(|)で受け取ることです。
コマンド | tee ファイル名
ls -l | tee list.txt
2. オプション
| オプション | 説明 |
-a (--append) | ファイルを上書きせず、追記する。 |
-i (--ignore-interrupts) | 割り込み信号(Ctrl+Cなど)を無視する。 |
追記モードの例
echo "新しいログを追加" | tee -a log.txt
3. なぜ tee を使うのか?(主な活用シーン)
① 実行結果をリアルタイムで見つつ保存したい
通常、>(リダイレクト)を使うと画面には何も表示されませんが、tee を使えば作業の進行状況を目視しながらログを残せます。
② 管理者権限(sudo)でファイルに書き込みたい
# これは失敗する(リダイレクト先を sudo が認識できないため)
sudo echo "setting=true" > /etc/config.conf
# これなら成功する
echo "setting=true" | sudo tee /etc/config.conf
③ 複数のファイルに同時に出力したい
一度に複数のファイルに書き込むことも可能です。
echo "Hello" | tee file1.txt file2.txt file3.txt
=================================================================================================
touch
空のファイルを新規作成したり、ファイルのタイムスタンプを更新したりする
書式: touch [オプション] ファイル名
| オプション | 説明 |
|---|---|
| -a | アクセス時間のみを変更する touch -a filename.txt |
| -t | [[CC]YY]MMDDhhmm[.ss]の書式に則り、タイムスタンプを指定した日時に更新します。 touch -t 202403121530 filename.txt |
| -d | 日時を文字列で指定して、タイムスタンプを更新します。 touch -d “2024-03-12 15:30:00” filename.txt |
| -c | 存在しないファイル名を指定しても、空の新規ファイルを作成しません。 touch -c filename.txt |
| -r | 指定した他のファイルのタイムスタンプに合わせて更新されます。 touch -r reference.txt filename.txt |
| -m | 更新時間のみを変更する。 touch -m filename.txt |
=================================================================================================