bash - bash:写入后立即移动新文件
问题描述
我正在尝试编写一个 bash 脚本来将文件从源移动到目标,以节省源磁盘上的空间(源和目标是两台不同的机器)。
我可以使用 scp 协议处理移动部分,但问题是我使用的软件非常快速地写入了很多文件(幸运的是每个文件都有相同的扩展名),我想尽快移动文件是写的。
因此,在源目录中,我想:
- 将文件移动到目的地,
- 从源中删除文件,
...直到软件停止在源上写入新文件。
有什么帮助吗?
先感谢您。
解决方案
这是一份工作inotifywait
。
inotifywait -meclose_write . |
while read d e f
do
echo Now is the time to move "$f".
done
当然,您可以指定任何源目录而不是.
.
推荐阅读
- c# - 等待 Task.CompletedTask 与返回
- c - 如果链接列表中存在循环,则删除循环
- php - 如何在没有 symfony 的情况下从 db 创建学说模型实体?
- linux - 运行脚本时找不到命令
- matplotlib - Python-matplotlib 中的标准绘图大小
- python - 如何根据条件“拆分”熊猫 df 列并旋转 df
- c# - 使用like子句实体框架核心3.1
- sql - 我有一个通话数据表我想计算每天调用的唯一帐户的数量,并按月计算唯一帐户的总和
- ruby-on-rails - Rails 视图中的复选框在没有 Javascript 的情况下更新数据库值
- python - 在 Python 中解决 Kempner 函数 - 为什么在达到基本情况后这个并发函数会继续?