Wie sehen die änderungen einer Datei auf Mac OSX mit FSWatch?
Ich versuche, fswatch übersetzen Sie die folgenden Zeilen aus einem linux-bash-Skript führen Sie es auf Mac OSX:
inotifywait -r -m 'myfolder/' | while read MODFILE
do
echo "something"
done
Da inotifywait funktioniert nicht auf Mac OSX will ich ersetzen Sie die erste Zeile für FSWatch. Obwohl die README-Datei bezieht sich auf die fswatch Mann-Seite, nicht einen link dazu und eine Suche rund um das internet will mich nicht nichts. Also habe ich versucht andauernd etwas.
Erstellte ich einen Ordner namens testfswatch/
und ich habe versucht, die folgenden Befehle ausführen in den übergeordneten Ordner und klicken Sie dann hinzufügen und ändern von Dateien auf der testfswatch/
Ordner:
fswatch -o testfswatch/ | echo "LALA"
fswatch -o testfswatch/ | someSimpleProgram
fswatch -o testfswatch/ | xargs -n1 -I{} echo "LALA"
fswatch -o testfswatch/ | xargs -n1 -I{} ./someExecutable
fswatch -o testfswatch/ | xargs -n1 echo "LALA"
fswatch -o testfswatch/ | xargs -n1 someExecutable
// And more variations of the above
Keiner dieser Befehle scheinen, etwas zu tun, wenn ich das ändern oder hinzufügen von Dateien in die tesfswatch/
Ordner obwohl.
Weiß jemand, was mache ich hier falsch? Alle Tipps sind willkommen!
- Ah ! war in der Tat auf version
0.0.2
. Ich habe gerade das Upgrade auf version1.3.7
, und die Dinge scheinen zu funktionieren, jetzt! Dank einer million! ps. Wenn Sie fügen Sie Ihren Kommentar als eine Antwort, die ich akzeptieren kann.
Du musst angemeldet sein, um einen Kommentar abzugeben.
pre-1.0-Versionen fswatch eine etwas andere Aufruf-syntax, im Vergleich zu 1.0 und höher.
Stellen Sie sicher, dass Sie eine version höher als 1.0 ist, möchten Sie vielleicht zu aktualisieren, wenn Ihre version älter ist als das.
Wie gesagt von Bushmills, der
fswatch
- syntax hat sich geändert in v. >= 1.x wenn es war verschmolzen mitfsw
: die Gründe hinter dieser Entscheidung war, dass mehr als ein Weg gesehen werden, mithilfe einer syntax, die sich sehr natürlich an UNIX-Benutzer.Darüber hinaus eine bestimmte option (
-0
) wurde Hinzugefügt, damit Sie einfach und nicht fehleranfällig Rohrleitungenfswatch
Ausgabe an ein anderes Programm Eingabe: bei der Verwendung von-0
,fswatch
werden separate Datensätze über dieNUL
(\0
) Charakter (entlang der Linien von dem, was andere Dienstprogramme wiefind
undxargs
tun).In Ihrem Fall, dann werden Sie wahrscheinlich wollen, verwenden Sie die folgende syntax (fein-tunen Sie es nach Ihrem Bedarf):
Diese Weise:
fswatch -0
teilen Datensätze mit derNUL
Charakter.xargs -0
teilen Datensätze mit derNUL
Charakter. Dies ist erforderlich, um richtig passen die Impedanz mitfswatch
.xargs -n 1
ruftcommand
jeden Befehl. Wenn Sie wollen, es zu tun jedenx
Datensätze, dann verwenden Siexargs -n x
.xargs -I {}
ersetzt vorkommen von{}
imcommand
mit den analysierten argument. Wenn der Befehl Sie ausführen, muss nicht die Ereignis-Pfad-Namen, löschen Sie einfach diese option.Hoffe, das hilft.
-E ".*"
und dann würden Sie hinzufügen einer Aufnahme-filter zum hinzufügen von Muster, das Sie wollen mit " - Ie ".*\.js". Sollten Sie jedoch mal eine andere Frage, denn dies hat nichts zu tun mit der ursprünglichen Frage.-E ".*"
ohne Erfolg in der version 1.4.7 von fswatch. Mit-e ".*"
mit einer Aufnahme-filter arbeitet. E. g.:fswatch -0 -e ".*" -i ".html" tmp/capybara/
-e
gibt eine Ausschluss-filter, während-E
sagtfswatch
erweiterte reguläre Ausdrücke. Da die Aufnahme-Filter haben stets den Vorrang über Ausschluss-Filter, egal die Reihenfolge der Optionen, und wählen Sie, was Sie tut, richtig ist: Sie ausschließen, alles, aber include-Dateien, die mit.html
. Ein Vorschlag: wenn Sie daran interessiert sind, filtern.html
als eine Erweiterung, vielleicht würden Sie lieber.html$
.