ls –t コマンドを使用すると、ディレクトリ内のファイルのリストを生成し、それらのタイムスタンプに従ってソートできます。デフォルトでは、ファイルは新しいものから順にリストされます。次の例は、/var/adm 内のファイルを新しいファイルから順にリストしています。
$ ls -t /var/adm total 134 -rw------- 1 root root 315 Sep 24 14:00 sulog -r--r--r-- 1 root other 350700 Sep 22 11:04 lastlog -rw-r--r-- 1 root bin 4464 Sep 22 11:04 utmpx -rw-r--r-- 1 adm adm 20088 Sep 22 11:04 wtmpx -rw-r--r-- 1 root root 11510 Sep 10 16:13 messages.1 drwxrwxr-x 5 adm adm 512 Sep 10 15:19 acct drwxrwxr-x 2 adm sys 512 Sep 10 15:19 sa drwxr-xr-x 2 adm adm 512 Sep 10 15:17 log
不要になったと判断された古いファイルは削除できます。
find コマンドを使用すると、定義した時間範囲内にあるファイルを検索し、削除対象としてマークできます。
詳細は、Oracle Solaris 11.3 でのユーザーとプロセスのセキュリティー保護 の 割り当てられている管理権利の使用を参照してください。
# find directory -type f[-atime +nnn] [-mtime +nnn] -print > output-file &
検索するディレクトリを指定します。その下のサブディレクトリも検索されます。
ファイルがアクセスされていない期間の日数を指定します。
ファイルが変更されていない期間の日数を指定します。
コマンドの出力が書き込まれるファイルを指定します。
まだ必要なファイルがリスト内にある場合は、それらのファイル名を出力ファイルから削除します。
# rm `cat output-file`
次の例は、/var/adm ディレクトリ内とそのサブディレクトリ内で過去 60 日にわたってアクセスされていないファイルを示しています。/var/tmp/deadfiles ファイルには、使用されていないファイルのリストが含まれます。rm コマンドは、これらの使用されていないファイルを削除します。
# find /var/adm -type f -atime +60 -print > /var/tmp/deadfiles & # more /var/tmp/deadfiles /var/adm/aculog /var/adm/spellhist /var/adm/wtmpx /var/adm/sa/sa13 /var/adm/sa/sa27 /var/adm/sa/sa11 /var/adm/sa/sa23 /var/adm/sulog /var/adm/vold.log /var/adm/messages.1 /var/adm/messages.2 /var/adm/messages.3 # rm `cat /var/tmp/deadfiles` #