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