删除Linux脚本中的每个Xth文件
我正在制作一个Timelapse视频,但相机正在拍摄许多照片(最高时间为1pic/60秒,但我只需要1pic/h)。所以我想保留每60张照片,删除其余的文件 目录中是否有bash脚本或简单命令来实现此目的?回答:删除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)(
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标志一起使用