删除周末创建的文件

删除周末创建的文件

我正在使用 Debian 10 Buster,并且我是 Linux 新手。永远不会太迟..

我正在收集图片,以便制作街对面建筑工地的长时间延时视频。

所有照片都在一个目录中,其中包括周六和周日拍摄的照片。

文件名的格式如下:

YYYY-MM-DD_HHMM.jpg

例子

2021-05-07_1012.jpg

现在我正在尝试删除周六和周日创建的图片。

在下面执行时(从此处的另一个线程)我可以列出周六和周日创建的所有文件:

find -type f -printf '%Ta\t%p\n' | egrep "^(Sat|Sun)" | cut -f 2-

问题是:如何将此行修改为删除语句以删除文件?

另一个选择可能是(我将文件存储在 nas 上)在将文件复制到我的工作目录时排除这些文件。

我使用 rsync 来复制文件。

提前致谢。

答案1

附加xargs rm到命令中,这样我们就有:

find -type f -printf '%Ta\t%p\n' | egrep "^(Sat|Sun)" | cut -f 2- | xargs rm

将删除与您的搜索结果匹配的任何文件。您还可以用来rm -v查看哪些文件被删除。

xargs从标准输入读取项目,正如您在评论中所说,它可以与模式一起使用。然而,我们这里的模式是用findprintf和定义egrepcut

运行命令来定位文件后,会打印相对路径,但是当我们使用xargs rm这些路径时,这些路径会被赋予rmvia xargs,然后被删除。

相关内容