我的节点系统中有一个不断增长的目录。在这个目录中,我保存了jpg
我avi
的CCTV 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
来代替om
which will sort based on改变时间。这是一个时间戳,不能任意设置,并且每次文件的任何内容(数据或元数据)发生更改时都会更新。