次のスクリプトを頻繁に呼び出します
クリーンアップ.sh
#!/bin/bash
DEFAULT_LIMIT=10
INPUT=$1
PATTERN=$2
LIMIT=$3
if [ "$INPUT" == "" ] || [ "$PATTERN" == "" ]
then
echo "usage: $0 INPUT PATTERN [LIMIT]"
exit 1;
fi
if [ "$LIMIT" == "" ]
then
LIMIT=$DEFAULT_LIMIT
fi
find /var/project/project1 -maxdepth 1 -type d -name "${INPUT}-${PATTERN}*" -printf '%T@ %p\n'|sort -nr|tail -n+$LIMIT|cut -f 2- -d " "|xargs -i rm -rf {}
$LIMIT
したがって、これはプレフィックス付きの最後の 2 番目のディレクトリを から削除することになっており、$INPUT-$PATTERN
予期/var/project/project1
せず (非常に重要ではありますが) 意図したもの以外のディレクトリを から削除することはめったにありません/var/project/project1
。理由はありますか?2- のカットの動作は適切に定義されていますか? f と field# の間にスペースを入れることはできますか? これは意図的に書かれたものではなくバグですが、このコードが予期しない削除の原因であるかどうかは定かではありません。
これはめったに再現できないため、これを修正cut -f2 -d " "
することで問題が解決するかどうかはわかりません ( )