如何监视目录中的新文件并将它们移动/重命名到另一个目录中?

Saj*_*bal 8 python bash scripts programming

程序output.txt在某个进程的每 15 次迭代后生成名为 的输出文本文件。这样做,它会覆盖最后一个output.txt. 但是,我想保留这些文件,并且无法在程序中修改文件名。

我可以运行一些脚本和程序来监视输出目录并将output.txt文件移动和重命名到另一个目录吗?

May*_*hux 9

首先安装软件包inotify-tools

sudo apt-get install inotify-tools
Run Code Online (Sandbox Code Playgroud)

bash 脚本会有所帮助

#! /bin/bash

folder=~/Desktop/abc

cdate=$(date +"%Y-%m-%d-%H:%M")

inotifywait -m -q -e create -r --format '%:e %w%f' $folder | while read file

  do
    mv ~/Desktop/abc/output.txt ~/Desktop/Old_abc/${cdate}-output.txt
  done
Run Code Online (Sandbox Code Playgroud)

这个脚本是什么意思:

这将监视文件夹,~/Desktop/abc因此每当在其中创建文件时,它都会将在其中创建的文件名称移动output.txt到目录~/Desktop/Old_abc并重命名提供新文件的日期和时间后缀,以确保不会覆盖旧文件这样你也可以知道这个文件是在什么时间和日期创建的