ファイル操作
find
Man Page:
ファイルやディレクトリを検索する。-exec
オプションで見つけたファイルに対してコマンド実行することもできる。
※LinuxとmacOSでオプションが異なる
Examples:
# path以下のファイル、ディレクトリを全てリストアップ
find <path>
# ファイルのみリストアップ
find <path> -type f
# 拡張子指定で検索
find <path> -name "*.txt"
# 3日以内に更新されたファイルを探す
find <path> -mtime -mtime -3
# 3日以上前のファイルを探して全て削除
find <path> -type f -mtime +3 -exec rm -f {} \;
時間指定オプション:
オプション | 意味 |
---|---|
-mmin | ファイルのデータが最後に修正された日時(分指定) |
-mtime | ファイルのデータが最後に修正された日時(日指定) |
-amin | ファイルのデータに最後にアクセスされた日時(分指定) |
-atime | ファイルのデータに最後にアクセスされた日時(日指定) |
-cmin | ファイルのデータとステータスが最後に修正された日時(分指定) |
-ctime | ファイルのデータとステータスが最後に修正された日時(日指定) |
参考:
mktemp
一時ファイル、またはディレクトリを作成する。
mktemp
# ディレクトリを作成
mktemp -d
参考:
readlink(1)
Examples:
# シンボリックリンクのリンク先を返す。再帰的に探索はしない
readlink <link>
# realpathと同じ働きをする
readlink -f <file>
realpath(1)
引数として与えられたファイル or ディレクトリの絶対パスを返す。 シンボリックリンクであれば、リンク先を再帰的に解決する。
tee
標準出力に書きつつファイルにも書く、ということをやりたいときに使う。
./a.sh | tee a.log
./a.sh | tee -a a.log # 追記
./a.sh 2>&1 | tee a.log # 標準エラーもファイルに書く
参考:
touch
touch -t 201807040100 path/to/file # mtimeを2018/7/4 01:00に変更
GNUオプション: ※macOSでは使えない
Option | 効果 |
---|---|
--[d]ate=日時 | 日時を指定する際に、 -t オプションの代わりに使える。dateコマンドの書式で日時を渡せるようだ |
参考:
umask
Examples:
# 現在のumask値を表示
umask
# umaskを022に設定
umask 022
関連項目:
参考: