LoginSignup
2
1

More than 5 years have passed since last update.

bashで最新N件残して他を削除する話

Last updated at Posted at 2018-01-31

実行時になにがしかを出力したりする際に、
capistrano みたいな 最新N件残して残りを削除 をbashで。

a.sh
EXPORT_PATH=./data/some_exports
TARGET_DATE=$(date +%Y%m%d_%H%M%S)

if [ -d ${EXPORT_PATH} ]; then
    # 最新から4件残し
    ls -td ${EXPORT_PATH}/* | tail -n +5 | xargs rm -rf
fi

mkdir -p ${EXPORT_PATH}/${TARGET_DATE}

cat <<-EOD > ${EXPORT_PATH}/${TARGET_DATE}/export.txt
this is sample ${TARGET_DATE}
EOD

実行と確認。

for x in {1..10}; do
  sleep 1
  bash a.sh

  tree ./data
  find ./data/ -name 'export.txt' -exec cat {} \;
done
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1