ファイル操作

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

Man page of MKTEMP

一時ファイル、またはディレクトリを作成する。

mktemp
# ディレクトリを作成
mktemp -d

参考:

readlink(1)

Man page of READLINK

Examples:

# シンボリックリンクのリンク先を返す。再帰的に探索はしない
readlink <link>

# realpathと同じ働きをする
readlink -f <file>

realpath(1)

Man page of REALPATH

引数として与えられたファイル or ディレクトリの絶対パスを返す。 シンボリックリンクであれば、リンク先を再帰的に解決する。

tee

標準出力に書きつつファイルにも書く、ということをやりたいときに使う。

./a.sh | tee a.log
./a.sh | tee -a a.log # 追記
./a.sh 2>&1 | tee a.log # 標準エラーもファイルに書く

参考:

touch

Man page of 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

関連項目:

参考: