質問

一緒に見守りたいと思っているフォルダに自分の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

このパスになります。

いく(およびその拡大)マツール kqwait.現在で飼ト書き込みイベントの単一のファイルが、 kqueue 建築できる階層イベントを積み重ね...

ウォッチドッグ でクロスプラットフォームな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 ます。

このワーライナーを使用 sschober's ツール.

$ while true; do kqwait doc/my_file.md; make; done

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top