一个目录中的文件名称以 001 到 100 结尾。如何删除 2、4、6、8...100。这可以写成脚本吗?一旦目录有一周的历史,就必须运行此脚本。一个月后再次运行。目标是删除一半不是最近的数据。
答案1
您可以使用带有步骤的 bash for 循环(如果是 bash v4)
所以
#!/usr/bin/bash
cd /path/to/directory/
for i in `ls *{0..100..2}`
do
rm $i
done
这可以放在你的 crontab 中,每周/每月运行一次
00 11 1 * * /path/to/script.sh 将在每月第一天上午 11 点运行
00 11 * * 1 /path/to/script.sh 将在每周一运行
答案2
像这样应该工作(现在无法测试,所以首先对重复数据进行测试) -
find /path/to/directory -type f -name '*[02468].jpg' -delete
或使用rm
-
find /path/to/directory -type f -name '*[02468].jpg' -exec rm {} +