监视添加到目录的文件大小(Bash)

Posted

技术标签:

【中文标题】监视添加到目录的文件大小(Bash)【英文标题】:Monitor files added to directory for size (Bash) 【发布时间】:2018-11-20 21:30:13 【问题描述】:

如果添加的文件太小,我想监视一个目录并中断另一个程序。这是我的原型:

inotifywait -r -m -e modify . | 
   while read _ _ file; do 
       if (( $(stat --printf="%s" "$file") << 36500 )); then
          echo "break"
       fi
   done

但是带有比较运算符的行不起作用。是无法将内联执行与数学运算符结合起来,还是我使用不当?

【问题讨论】:

“小于”在 Bash 的算术上下文中只是 &lt; @7Reeds 我很确定他们只是想将文件大小(以字节为单位)与“小于”进行比较,并以某种方式以&lt;&lt; 而不是&lt; 结束。 【参考方案1】:

Bash arithmetic 语法表明这应该是(("$(stat --printf="%s" "$file")" &lt; 36500))&lt;&lt; 有时在数学中用来表示“远小于”,但它的定义并不像您想象的那样。

【讨论】:

以上是关于监视添加到目录的文件大小(Bash)的主要内容,如果未能解决你的问题,请参考以下文章

用于监视新文件目录的 bash 脚本

sh Bash:如何列出每个文件和目录的大小(递归)并按大小排序?

使用 bash 监视目录中的现有文件和新文件

Java:监视目录以移动大文件

如何使用 bash 监视目录中新创建的文件?

不区分大小写的OSX文件系统 - 奇怪的更改目录(cd)bash行为