查找最近创建的文件并将其发送到另一台计算机

查找最近创建的文件并将其发送到另一台计算机

我的节点系统中有一个不断增长的目录。在这个目录中,我保存了jpgaviCCTV DVR.我想将最近创建的jpg文件发送到另一台 Linux 机器(后进先出方法)。您能就这个问题给我建议吗?

答案1

如果您想使用脚本自己完成此操作,类似这样的事情就可以完成工作:

#!/bin/bash

lastFile="$(find -type f -iname '*.jpg' -printf '%T@ %p\n' | sort -k1 -n | tail -1 | awk '{print $2}')"

# Move it anyway you like, I use scp for demonstration
rsync -au "$lastFile"  [email protected]:/path/to/files/

# Then remove it, move it or anything else you want
rm -i "$lastFile"

但请记住,该脚本使用的是修改时间,因为 Linux 不记录创建时间。

find被取自这里


  • find -type f -iname '*.jpg' -printf '%T@ %p\n'列出jpg文件及其修改时间

  • sort -k1 -n根据修改时间对它们进行排序

  • tail -1我们抓住最新的
  • awk '{print $2}只保留文件名

答案2

zsh

scp ./**/*.jpg(D.om[1]) host:

om按最后修改时间排序,最后修改时间可以看作文件内容的创建时间。

有些工具喜欢将图片的修改时间设置为拍摄图片的时间(例如,当该信息在相机放置的图像元数据中可用时)。

您还可以使用whichoc来代替omwhich will sort based on改变时间。这是一个时间戳,不能任意设置,并且每次文件的任何内容(数据或元数据)发生更改时都会更新。

相关内容