Unix 使用“监视”每秒复制两次目录中的新文件
我有一个文件夹(foo),我想每秒检查两次。如果该文件夹中有任何新文件,我希望将其复制到第二个文件夹(foo2)。我想用手表和cp。我用的是tcsh 如何做到这一点 这就是我正在尝试的:Unix 使用“监视”每秒复制两次目录中的新文件,unix,watch,cp,Unix,Watch,Cp,我有一个文件夹(foo),我想每秒检查两次。如果该文件夹中有任何新文件,我希望将其复制到第二个文件夹(foo2)。我想用手表和cp。我用的是tcsh 如何做到这一点 这就是我正在尝试的: touch lastChanged watch --interval=.5 'if [[ $(ls foo) ]] then cp $; else echo "nothing new";fi 这似乎对我有用。我愿意接受更好的答案 touch lastChecked watch --interval=.5 'i
touch lastChanged
watch --interval=.5 'if [[ $(ls foo) ]] then cp $; else echo "nothing new";fi
这似乎对我有用。我愿意接受更好的答案
touch lastChecked
watch --interval=.5 'if [[ $(find foo -newer lastChecked -ls -exec cp {} foo2 \; then touch lastChecked; else echo "nothing new"; fi
手表每秒检查两次
查找查找比“lastChecked”文件更新的文件并复制这些文件
然后触摸最后一次检查
触摸lastChecked也将允许在文件更新时进行cping。这似乎对我有效。我愿意接受更好的答案
touch lastChecked
watch --interval=.5 'if [[ $(find foo -newer lastChecked -ls -exec cp {} foo2 \; then touch lastChecked; else echo "nothing new"; fi
手表每秒检查两次
查找查找比“lastChecked”文件更新的文件并复制这些文件
然后触摸最后一次检查
触摸lastChecked也将允许在文件更新时进行cping。FWIW-如果您有inotify命令,您可能希望改用该命令。您可以告诉它在创建文件(不知道您在做什么)、写入文件、打开文件等时通知您。您希望现在刚刚关闭的文件可以复制整个文件。我建议这样做是因为您似乎是在linux上-watch命令是大多数linux发行版的一部分。@jimmcnamara不幸的是,我没有它,也没有访问它的权限。我不知道csh或tcsh,因此我无法在这方面提供帮助。但是,每500毫秒运行一次“ls”,然后再进行额外处理将消耗资源,而且您无法保证刚才复制的文件已完全写入并关闭,好吧。当您对一个文件进行cp时,您只会得到当前写入该文件的内容。我不知道这是否是你的问题。如果我理解正确,您可能会在文件增长时重复复制文件。cp不是智能的,cp是整个文件。我只需要它运行一点FWIW-如果你有inotify命令,你可能会想用它来代替。您可以告诉它在创建文件(不知道您在做什么)、写入文件、打开文件等时通知您。您希望现在刚刚关闭的文件可以复制整个文件。我建议这样做是因为您似乎是在linux上-watch命令是大多数linux发行版的一部分。@jimmcnamara不幸的是,我没有它,也没有访问它的权限。我不知道csh或tcsh,因此我无法在这方面提供帮助。但是,每500毫秒运行一次“ls”,然后再进行额外处理将消耗资源,而且您无法保证刚才复制的文件已完全写入并关闭,好吧。当您对一个文件进行cp时,您只会得到当前写入该文件的内容。我不知道这是否是你的问题。如果我理解正确,您可能会在文件增长时重复复制文件。cp不智能,cp是整个文件。我只需要它运行一点