删除Linux脚本中的每个Xth文件

删除Linux脚本中的每个Xth文件,linux,bash,shell,file,Linux,Bash,Shell,File,我正在制作一个Timelapse视频,但相机正在拍摄许多照片(最高时间为1pic/60秒,但我只需要1pic/h)。所以我想保留每60张照片,删除其余的文件 目录中是否有bash脚本或简单命令来实现此目的?回答: find-最大深度1-类型f-打印f“%T+\T%p\n”|排序|切割-f 2 | awk'NR%60!=0'| xargs-d'\n'rm-f 说明: find-maxdepth 1-type f-printf“%T+\T%p\n”-查找当前目录中的所有常规文件(-type f)(

我正在制作一个Timelapse视频,但相机正在拍摄许多照片(最高时间为1pic/60秒,但我只需要1pic/h)。所以我想保留每60张照片,删除其余的文件

目录中是否有bash脚本或简单命令来实现此目的?

回答:

find-最大深度1-类型f-打印f“%T+\T%p\n”|排序|切割-f 2 | awk'NR%60!=0'| xargs-d'\n'rm-f


说明:

find-maxdepth 1-type f-printf“%T+\T%p\n”
-查找当前目录中的所有常规文件(
-type f
-maxdepth 1
)并打印出文件修改时间和文件名,用制表符分隔,每个文件一行(
-printf“%T+\T%p\n”

排序
-按升序对结果列表进行排序(因为修改时间在行的开头,这意味着首先是最旧的文件)。使用
-r
按相反顺序排序

cut-f2
-从列表中删除修改时间,只保留文件名(列表中的第二个字段)

awk'NR%60!=0'
-从结果列表中每隔60行删除一行

xargs-d'\n'rm-f
-对列表中剩余的每一行执行
rm-f


最终的结果是,不会删除每个第60个文件,而是删除当前目录中的所有其他常规文件。使用风险自负:)

文件名是什么,如何确定哪一个是第n个文件?请考虑将like find与cmin和delete标志一起使用