我正在创建一个 cron 来清理指定文件夹的子目录(仅限第一个子目录),但最近的两个文件除外,但遇到了问题。
这些是我的尝试:
find ./ -type d -exec rm -f $(ls -1t ./ | tail -n +4);
find . -maxdepth 2 -type f -printf '%T@ %p\0' | sort -r -z -n | awk 'BEGIN { RS="\0"; ORS="\0"; FS="" } NR > 5 { sub("^[0-9]*(.[0-9]*)? ", ""); print }' | xargs -0 rm -f
我还尝试创建一个文件数组,目的是使总数减去 2,但该数组并未填充所有文件:
while read -rd ''; do x+=("${REPLY#* }"); done < <(find . -maxdepth 2 -printf '%T@ %p\0' | sort -r -z -n )
有人可以帮我解释一下他们是怎么做的吗?