2024/03/25

Delete None Keeping Files Part II

ไน‹ๅ‰ๅฏซ้Ž้€™็ฏ‡ Delete None Keeping Files,ๅœจๆŸๅ€‹็›ฎ้Œ„ไพ็…งๅปบๆ—ฅไฟ็•™ๆœ€ๆ–ฐ็š„ N ๅ€‹ๆช”ๆกˆ,ๆœ‰ๅ€‹ๆ–ฐๆ”น่‰ฏ็š„ๅฏซๆณ•ๆˆ–่จฑๆ›ดๅฅฝๆ‡‚。

#!/bin/bash

KEEP=10
DIRECTORY=/data/

find "$DIRECTORY" -maxdepth 1 -type f -name "*.log" -printf "%T@ %p\n" | sort -r | tail -n +$(($KEEP+1)) | awk '{print $NF}' | xargs rm -f

ไพ†่งฃ้‡‹ๅ„ๆฎตๅƒๆ•ธ:

  • find "$DIRECTORY":ๅฐ‹ๆ‰พ็›ฎๆจ™็›ฎ้Œ„
  • -maxdepth 1:ๅชๆ‰พ่ฉฒ็›ฎ้Œ„็ฌฌไธ€ๅฑค
  • -type f:ๅชๆ‰พๅฐ‹ๆช”ๆกˆ,ไธๅˆ—ๅ…ฅ็›ฎ้Œ„
  • -name '*.log':ๆ‰พๅฐ‹ๅ‰ฏๆช”ๅ็‚บ log ็š„ๆช”ๆกˆ
  • -printf "%T@ %p\n":ไฝฟ็”จ printf ่ผธๅ‡บ,่ผธๅ‡บๆ–นๅผ็‚บๅปบ็ซ‹็š„ๆ™‚้–“ๆˆณ + ๆช”ๅ
  • sort -r:ไพ็…งๆ™‚้–“ๆˆณ้€†ๆŽ’ๅบ
  • tail -n +$(($KEEP+1)):ๅˆ—ๅ‡บไฝ ่ฆไฟ็•™็š„ๆช”ๆกˆๆ•ธไปฅๅค–็š„ๆช”ๆกˆ
  • awk '{print $NF}':ๅชๆŠ“ๅ‡บๆช”ๆกˆ่ทฏๅพ‘
  • xargs rm -f:ๅˆช้™ค่ฉฒๆช”ๆกˆ

้€™ๆจฃ็š„ๅฏซๆณ•ๆ‡‰่ฉฒๆ˜ฏ่ฌ็„กไธ€ๅคฑไบ†。