14 日以上前のファイル/フォルダーを消去する Web サーバー用のスクリプトを作成する必要がありますが、最後の 7 つのファイル/ディレクトリは保持します。私はこれまで調査を行ってきましたが、ここに私が思いついたものがあります(構文とコマンドが間違っていることは知っていますが、アイデアを得るためだけです):
ls -ldt /data/deployments/product/website.com/*/ | tail -n +8 | xargs find /data/deployments/product/website.com/ -type f -type d -mtime +14 -exec rm -R {} \;
これは、スクリプトがどのように動作するかについての私の思考プロセスです (私はむしろ Windows バッチのやつです)。
ディレクトリの内容を一覧表示する
If contents is less than or equal to 7, goto END
If contents is > 7 goto CLEAN
:CLEAN
ls -ldt /data/deployments/product/website.com/*/
keep last 7 entries (tail -n +8)
output of that "tail" -> find -type f -type d (both files and directories) -mtime +14 (not older than 14 days) -exec rm -R (delete)
xargs と sed を使用した例をたくさん見てきましたが、すべてをまとめる方法がわかりません。