我想在我的Mac上监视一个文件夹,然后执行一个bash脚本,将刚刚移动到或在监视目录中创建的任何文件/文件夹的名称传递给它。
当前回答
这里有一个简单的单行替代方案,供那些没有watch命令但又想每3秒执行一次命令的用户使用:
而:;做您的命令;睡眠3;完成
这是一个无限循环,基本上与执行以下操作相同:
看-n3你的命令
其他回答
福斯沃琪
fswatch是一个使用Mac OS X FSEvents API监控目录的小程序。 当收到关于该目录的任何更改的事件时,指定的 Shell命令由/bin/bash执行
如果你使用的是GNU/Linux, Inotifywatch(部分 大多数发行版上的Inotify-tools包)提供了类似的功能 功能。
更新:fswatch现在可以在许多平台上使用,包括BSD, Debian和Windows。
语法/简单示例
新的方式,可以观察多个路径-版本1。X及以上:
fswatch -o ~/path/to/watch | xargs -n1 -I{} ~/script/to/run/when/files/change.sh
注意:如果没有-I{}, -o输出的数字将被添加到xargs命令的末尾。如果您选择使用该数字,请将{}放置在命令中的任何位置。
版本0.x的旧方法:
fswatch ~/path/to/watch ~/script/to/run/when/files/change.sh
使用Homebrew安装
13年9月12日,它又被添加到自制啤酒中——耶!所以,更新你的公式列表(brew update),然后你需要做的是:
brew install fswatch
没有Homebrew的安装
在Terminal.app中输入这些命令
cd /tmp
git clone https://github.com/alandipert/fswatch
cd fswatch/
make
cp fswatch /usr/local/bin/fswatch
如果你的系统上没有c编译器,你可能需要安装Xcode或Xcode命令行工具——都是免费的。然而,如果是这样的话,你可能应该试试自制啤酒。
fswatch版本1.x的附加选项
Usage:
fswatch [OPTION] ... path ...
Options:
-0, --print0 Use the ASCII NUL character (0) as line separator.
-1, --one-event Exit fsw after the first set of events is received.
-e, --exclude=REGEX Exclude paths matching REGEX.
-E, --extended Use exended regular expressions.
-f, --format-time Print the event time using the specified format.
-h, --help Show this message.
-i, --insensitive Use case insensitive regular expressions.
-k, --kqueue Use the kqueue monitor.
-l, --latency=DOUBLE Set the latency.
-L, --follow-links Follow symbolic links.
-n, --numeric Print a numeric event mask.
-o, --one-per-batch Print a single message with the number of change events.
in the current batch.
-p, --poll Use the poll monitor.
-r, --recursive Recurse subdirectories.
-t, --timestamp Print the event timestamp.
-u, --utc-time Print the event time as UTC time.
-v, --verbose Print verbose output.
-x, --event-flags Print the event flags.
See the man page for more information.
Sudo fs_usage -f filesys | grep“有趣的事情”?
您可能想看一看(或者扩展一下)我的小工具kqwait。目前它只是坐在那里等待单个文件上的写事件,但是kqueue架构允许分层事件堆叠…
Apple OSX文件夹操作允许您根据对文件夹采取的操作自动化任务。
这里有一个简单的单行替代方案,供那些没有watch命令但又想每3秒执行一次命令的用户使用:
而:;做您的命令;睡眠3;完成
这是一个无限循环,基本上与执行以下操作相同:
看-n3你的命令
推荐文章
- (Mac) -bash: __git_ps1:命令未找到
- 如何创建Bash别名?
- Java/JDK的苹果硅芯片
- Virtualenvs中的破引用
- 如何使用xargs复制名称中有空格和引号的文件?
- 强制DOM重绘/刷新Chrome/Mac
- RE错误:在Mac OS X上的非法字节序列
- OS X上的“date”命令没有ISO 8601的“-I”选项?
- MobileDevice。pkg不受信任,OS X更新后无法打开Xcode
- 在tmux模式中丢失vim配色方案
- 如何在macOS中安装wget ?
- Brew安装docker不包括docker引擎?
- 在Swift中获取两个日期(月/天/小时/分/秒)之间的差异
- 在OS X操作系统下设置MySQL root用户密码
- 运行pod设置给我“坏的解释器:没有这样的文件或目录”错误