「date-2012-01-01_12_30」という名前のサブフォルダー内のすべてのフォルダーを削除する再帰スクリプトを作成する必要がありますが、最新の 2 つを残します。
/var/www/temp/updates/ 次に、「日付」および「コード」別の数百のフォルダー
例えば
/var/www/temp/updates/2012-01-01/temp1/date-2012-01-_12_30
/var/www/temp/updates/2012-01-01/temp1/date-2012-02-_13_30
/var/www/temp/updates/2012-01-01/temp1/date-2013-11-_12_30
/var/www/temp/updates/2012-01-01/temp2/date-2012-01-_12_30
検索を使用してフォルダーを取得することを考えていましたが、スクリプトが日付を知る必要があるため、削除できるフォルダーを知る方法がわかりません-フォルダーはそのサブフォルダーにあり、どのフォルダーが最新のものですか
うーん、どんな助けでもいいですか?
コード:
$PATH=/var/www/temp/updates/*/*
find $PATH -type d -name "date-*" -printf '%T@ %p\n' | sort -n | head -n -2 | cut -f2- | xargs ls -l
スクリプトは、何千もの異なるフォルダーを通過し、最新の 2 つのフォルダーを保持する必要があります。ここの誰かが以前に助けてくれましたが、何千ものフォルダーを検索できるように変更していません。