フォルダの下に/var/log/roler_t
次のファイルがあります。
-rw-r--r-- 1 roler smike 37652 Jun 25 01:44 2018-06-23T02:KJU:00
-rw-r--r-- 1 roler smike 41742 Jun 25 01:45 2018-06-21T20:KJU:00
-rw-r--r-- 1 roler smike 36762 Jun 25 01:46 2018-06-22T08:KJU:00
-rw-r--r-- 1 roler smike 51764 Jun 25 01:47 PL-06-23T12:KJU:00
-rw-r--r-- 1 roler smike 42751 Jun 25 01:48 2018-06-21T16:KJU:00
-rw-r--r-- 1 roler smike 34627 Jun 25 01:49 2018-06-22T23:KJU:00
-rw-r--r-- 1 roler smike 59828 Jun 25 01:51 2018-06-23T05:KJU:00
-rw-r--r-- 1 roler smike 33561 Jun 25 01:52 2018-06-22T20:KJU:00
-rw-r--r-- 1 roler smike 59828 Jun 25 01:51 JFG:KJU:00
-rw-r--r-- 1 roler smike 33561 Jun 25 01:52 PL-22T20:KJU:00
-rw-r--r-- 1 roler smike 36643 Jun 25 01:53 2018-06-22T01:KJU:00
10日以上の特定の日付パターン(例えば2018-06-23
。
予想される結果は次のとおりです。
次のファイルは次に保存されます。/var/log/roler_t
-rw-r--r-- 1 roler smike 51764 Jun 25 01:47 PL-06-23T12:KJU:00
-rw-r--r-- 1 roler smike 59828 Jun 25 01:51 JFG:KJU:00
-rw-r--r-- 1 roler smike 33561 Jun 25 01:52 PL-22T20:KJU:00
答え1
このコマンドを使用して、日付でファイルをフィルタリングできますfind
。
たとえば、
find /var/log/roler_t -mtime +10
すべてのファイルを返す修正日> 10日。
-atime
繰り返しますが、(アクセス時間)、(状態変更時間)などを使用できます。 flags しかし、それはまさにあなたが探しているものだと-ctime
思います。-mtime
コマンド一つで削除したい場合(しかしお勧めします)いつも結果がfind
予想と一致することを事前に確認してください。)
find /var/log/roler_t -mtime +10 -exec rm {} \;
答え2
これは前の質問と似ています。以下から入手できます。
$ find /var/log/roler_t -mtime +10 -name "XXXX-XX-XX*"
XXXX-XX-XXは探している日付スタンプです。もしあなたなら知る年、月、日は、探している修正時刻に対応します。 -nameオプションのパラメーターを次のように変更できます。
$find /var/log/roler_t -mtime +10 -name "`date -d'now - 10 days' +'%y-%m-%d'*"
mtime と date スタンプが必要なものと一致することを確認するには、date コマンドを使用して日数を減らす必要がありますが、ファイル名のプレフィックスは自動的に生成されます。
「2018-09-13」など、日付スタンプに似た文字列で始まるファイル名のみを一致させるには、次のコマンドを使用します。
/var/log/roler_t -mtime +10 -name "[12][0-9][0-9][0-9]-[01][0-9]-[0-3][0-9]*"