find
ディレクトリのリスト表示(半年以上変更されていないディレクトリ)
このコマンドは、/backup/ ディレクトリ以下の、過去180日以上変更されていないディレクトリを検索します。
find /backup/* -daystart -maxdepth 0 -mtime +180 -type d
-mtime オプションの解説:
-mtime オプションは、ディレクトリが最後に変更されてからの経過時間を指定します。 + 記号は「より多い」という意味で、指定した日数以上経過したものを検索します。
mtime +plus
find . -daystart -mtime +2
# 7/5実施: 3(2+1)日前(7/2)のファイルから、古いもの全て
# ◯ | - | now →
# 期間: ./20250531(一番古いファイル) 〜 ./20260702(3(2+1)日前)
mtime -minus
find . -daystart -mtime -2
# 7/5実施: 7/5を含み、今日が1、昨日が2
# - | ◯ | now →
# ./20260704(2) 〜 ./20260705(1)
mtime (nothing)
find . -daystart -mtime 2
# 7/5実施: 7/5を含み、今日が1、昨日が2で、ピンポイント指定
# ./202607040000
補足:
- このコマンドは、
/backup/ディレクトリ以下のすべてのディレクトリを検索し ます。 -maxdepth 0は、/backup/ディレクトリ自体のみを検索し、サブディレクト リは検索しません。- このコマンドは、ディレクトリのみを対象としています。
-daystartを取ると、x24時間での計算となる。daystartを使わないと、00:00の扱いや、実行時間の依存が大きくなるため、daystartを活用する方針とする。
環境づくりコマンド
mkdir -p work; cd ${_}
for f in $(seq 0 400)
do
datelabel=$(date --date "${f} days ago" +%Y%m%d0001)
touch -t ${datelabel} ${datelabel}
ls -l ${datelabel}
done
# 2026-07-05
# 20260705 => 20250531