あるコマンドライン"腕時計"や"inotifywait"のMac?
質問
一緒に見守りたいと思っているフォルダに自分のMac(Snow Leopard)を実行リクエストをして利用していますので、ファイル名のどちなみにフォルダパラメータとして...x.sh"filename")).
私はスクリプトの全てのアップされbash(x.sh)に移動しファイルおよびその他のものの入力の$1だけが必要OSXを与えてくれるものでありさえするファイル名が新しいファイル/フォルダに移動されるdir.
他のコマンド?
解決
fswatch
fswatch 小さなプログラムのMac OS X FSEvents APIタンをクリックします。イベントのあらゆる変更についてそのディレクトリには、指定された
シェルのコマンドを実行する /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
注意:の番号を出力する
-o
に追加されますのxargs
コマンドでない場合は、-I{}
.またその番号、場所{}
どこすことができます。
古い方のために バージョン0になります。x:
fswatch ~/path/to/watch ~/script/to/run/when/files/change.sh
インストール自作
としての9/12/13でソフトバンクモバイルへの 自作 -た!なので、更新式のリストbrew update
します:
brew install fswatch
設置の自作なし
Typeこれらのコマンド 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.
他のヒント
利用できる launchd その目的のためにLaunchd設定でき、自動的に立ち上げプログラムがファイルのパスが変更されます。
例えば、以下のlaunchd config plistのプログラム /usr/bin/logger
きのデスクトップフォルダのユーザーアカウントが変更された:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>logger</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/logger</string>
<string>path modified</string>
</array>
<key>WatchPaths</key>
<array>
<string>/Users/sakra/Desktop/</string>
</array>
</dict>
</plist>
を活性化するconfig plistを保存でLaunchAgentsフォルダにフォルダの図書館"としてlogger.plist".
からシェルを利用できます、コマンド launchctl
のlogger.plistを実行:
$ launchctl load ~/Library/LaunchAgents/logger.plist
デスクトップフォルダが現在監視されています。毎回変わりついている出力されます。ログを使用します。っていない。無効化するには、logger.plist実行します:
$ launchctl unload ~/Library/LaunchAgents/logger.plist
設定ファイル上記の WatchPaths
オプションです。きにお使いいただけます
QueueDirectories
オプションです。を参照 launchd manページです。
Facebookの 巡回, 頂きますと、自作にも見えます。でもフィルタリング:
この二つを見にはソースディレクトリに設定し アットリガーの名前"buildme"を実行するというツール"minify-css" うCSSファイルが変更されます。ツールに渡すことのリスト 変更ファイル名.
$ watchman watch ~/src
$ watchman -- trigger ~/src buildme '*.css' -- minify-css
このパスになります。
ウォッチドッグ でクロスプラットフォームなpython APIを見てファイル/ディレクトリ、組み込み"技"をすることのできるツールのトリガーの行動を含むシェルコマンドがイベントの発生を含む新たな付加ファイルを削除ファイルを変更します。
このうち entr 代わりにOSX走任意のコマンドがファイルが変化します。れているあらゆる内容の簡単、便利です。
編集: fsw
に統合し fswatch
.この回答、参照す fsw
この読み fswatch
.
しっかりとした fswatch
交換用のC++という fsw
無数の改良:
この、GNUシステムの構築プロジェクトをトランスポートプラットフォーム(OS X v.>=10.6)
./configure && make && sudo make install
複数の経路として渡すことができ異なる引数:
fsw file-0 ... file-n
この堆積場を詳細に記録すべてのイベント情報など
Sat Feb 15 00:53:45 2014 - /path/to/file:inodeMetaMod modified isFile
その出力が簡単に構文解析で
fsw
出力パイプによる他のプロセス。- 遅延のできるカスタマイズしたとの
-l, --latency
. - 数値のイベントフラグに書き込み可能なテキストのもの
-n, --numeric
. - の時刻のフォーマットできるカスタマイズを使用
strftime
形式の文字列-t, --time-format
. - のできる、 地 時間の機械(デフォルト)またはUTCとの時間を
-u, --utc-time
.
っfsw:
fsw
は 主催GitHub して取得することができクローニング、そのリポジトリ:
git clone https://github.com/emcrisostomo/fsw
インアップfsw:
fsw
可使用以下のコマンド:
./configure && make && sudo make install
さらに情報:
私も書きましたが、入門 ブログ べき事例の一つ fsw
ます。
Apple OSX 行動フォルダ できる自動化業務に基づく行動は、フォルダにまとめた。
私のフォークの fswatch の機能を提供 inotifywait -m
少ない(ないます。たくさん持っているんですがトラブルのLinux inotifywait
...)構文解析に優しい出力に出力します。
この改善の原 fswatch
で送っていても、実際の経路の変更ファイルを標準出力に出力ではなく必要とするプログラムでフォーク.
してロック固体としての基盤をなすシリーズの怖いbashのスクリプトを使っている自動化。
(これはオフトピックス inotifywait
Linuxでは、多くのkludgesので、まだまだだねるのに良い方法で管理するとともに、もう何かに基づく node.js
あのチケットとなります。
僕の趣旨のことを利用はいたってシンプル
watchfiles <cmd> <paths...>
例えば、以下のコマンドでエコー Hello World
毎回る file1
または file2
変化デフォルトのチェック間隔は1秒
watchfiles 'echo Hello World' /path/to/file1 /path/to/file2
したい場合はチェック5秒毎に使用できま -t
旗
watchfiles -t 'echo Hello World' /path/to/file1 /path/to/file2
-v
を可能にしverbose
モードをデバッグ情報-q
このwatchfiles
実行を静かに(#
すでに利用いただけますが、さらにプログラムの実行)-qq
このwatchfiles
実行が完全に静かに-h
の助けと利用
https://gist.github.com/thiagoh/5d8f53bfb64985b94e5bc8b3844dba55
当社はこの理解度を深めるために、.いがひどい方は:
#!/bin/sh
# watchAndRun
if [ $# -ne 2 ]; then
echo "Use like this:"
echo " $0 filename-to-watch command-to-run"
exit 1
fi
if which fswatch >/dev/null; then
echo "Watching $1 and will run $2"
while true; do fswatch --one-event $1 >/dev/null && $2; done
else
echo "You might need to run: brew install fswatch"
fi
こちらの単純な単線の代替なしでユーザの watch
コマンドの方を実行したいコマンド毎3秒
while :; do your-command; sleep 3; done
で無限ループでは基本的に同じとして、以下の
watch -n3 your-command