2015-07-30 19 views
4

Я мониторинг определенной папки в Mac OS, давая в командной строкеКогда я fswatch определенную папку в макинтош, я переименовываются файлов как для добавления и удаления файлов в папке

fswatch -x /Users/syammala/folder 

/Пользователи /syammala/folder/posixGroup.xml Переименованный IsFile

Всякий раз, когда я добавляю или удаляю файл, я всегда получаю переименованный файл. Я хочу, чтобы дифференцировать действие, когда я добавлять и удалять файлы

+0

Что такое 'fswatch'? Это не команда, встроенная в OS X. Как насчет того, чтобы спросить, кто ее предоставляет? В любом случае, это не вопрос программирования или инструментов разработчика, поэтому не подходит для StackOverflow. –

+0

fswatch - это кросс-платформенный монитор, который использует FSevents в MAC OSX. Насколько я знаю, когда мы даем это в командной строке, он отображает события, происходившие в определенном месте папки, о котором мы упоминали. Но для добавления и удаления я получаю такое же сообщение. Я хочу знать, можем ли мы сделать какие-либо программные изменения, чтобы выяснить, какое действие действительно выполняется в папке. –

+0

Вы хотите изменить код 'fswatch'? Затем вам нужно показать код, который он использует в настоящее время, и задать конкретный вопрос об этом. –

ответ

3

Обновлено Ответ

Как вы теперь уточнено, что вы перемещение и удаление файлов с помощью Finder, это делает жизнь более сложной, потому что, когда вы используете Finder, который он взаимодействует с Trashcan, в отличие от того, когда вы используете команды Terminal и Unix. Итак, когда вы удаляете файл в Finder, он переименовывает файл в корзину, который хранится в $HOME/.Trash.

Таким образом, вы фактически должны следить за урну, а также везде, где вы планировали по мониторингу, как это:

fswatch -x FolderA $HOME/.Trash 

тогда вы будете видеть все, что происходит.

В качестве альтернативы, отключите Trashcan, который я ценю, может быть неприемлемым, однако вы не предоставляете много деталей своей среды, поэтому я не знаю.

Чтобы отключить Trashcan, удалите каталог $HOME/.Trash и все его содержимое, а затем создайте файл с именем $HOME/.Trash, чтобы OSX не смог воссоздать свой любимый Trashcan. Не делайте этого, если вы этого не понимаете!

cd 
rm -rf .Trash 
touch .Trash 

Чтобы позже повторно включить урну, сделать это:

cd 
rm .Trash 

Оригинал ответа

Вы можете сделать это, как это с числовыми флагами.

Если вы сделаете это:

touch FreddyFrog 
rm FreddyFrog 

touch BozoBrains 
mv BozoBrains SillyBilly 
rm SillyBilly 

вы можете отслеживать, как этот

fswatch -xn `pwd` 
/Users/mark/tmp/FreddyFrog 514  # touch FreddyFrog 
/Users/mark/tmp/FreddyFrog 520  # rm FreddyFrog 

/Users/mark/tmp/BozoBrains 514  # touch BozoBrains 
/Users/mark/tmp/BozoBrains 528  # mv BozoBrains SillyBilly 
/Users/mark/tmp/SillyBilly 528  # mv BozoBrains SillyBilly 
/Users/mark/tmp/SillyBilly 520  # rm SillyBilly 
+0

Когда я перемещаю файлы из командной строки и удаляю файлы из командной строки, я получаю то же самое 528. А также когда я перетаскиваю файлы в папку и вне папки, я получаю этот же 528 Я хочу выделить это каждое действие в папке –

+0

Итак, если вы повторяете точные команды, которые я показал, вы всегда получаете 528, никогда 514, никогда 520? Это верно? Какую версию OSX вы используете? –

+0

Мы получаем 514, когда создаем файл касания и 520 для файла rm. То, что я говорю, для перетаскивания и удаления, мы всегда получаем 528. –