gpt4 book ai didi

file - 如何在 CentOS 的文件夹中获取文件创建/复制的事件?

转载 作者:行者123 更新时间:2023-12-04 19:38:56 25 4
gpt4 key购买 nike

我需要在 CentOS 中编写一个脚本,它将在后台运行。
该脚本需要检查是否在/root/MyFile 文件夹中创建了文件名“status.txt”。如果创建了该文件,则我的脚本应捕获一个事件。

我应该在我的脚本中编写什么代码片段,以便获取已在文件夹中创建 txt 文件的事件?

任何帮助是极大的赞赏。

最佳答案

最简单的解决方案:

while true; do
do
[ -e "/root/MyFile/status.txt" ] && { echo file is created; break; }
sleep 1
done

而不是 echo file is created您可以编写要执行的命令。

您可以使用 通知 :
inotifywait --format '%f' -m /root/MyFile 2> /dev/null | while read file
do
[ "$file" = status.txt ] \
&& [ -e "/root/Myfile/$file" ] \
&& { echo file is created ; break; }
done

该解决方案的优点是您将立即获得操作,因为将创建文件。在第一种情况下,您也将等待第二种情况。第二个优点是您需要每秒轮询文件系统。

但这种解决方案也有缺点:
  • 它仅适用于 Linux;
  • 你需要相对现代的内核;
  • 你需要安装inotify-tools;
  • 如果您在 status.txt 之前创建了许多文件将创建,您进行许多额外的比较操作。

  • 恢复:

    我认为,您需要第一个解决方案。

    关于file - 如何在 CentOS 的文件夹中获取文件创建/复制的事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12703271/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com