폴더 / 파일에서 변경 사항을 확인할 수있는 방법이 있습니까 (파일 추가, 파일 삭제, 파일 변경 등). Automator의 '폴더 작업'은 파일이 새로 추가되었는지 만 확인합니다.
폴더 / 파일에서 변경 사항을 확인할 수있는 방법이 있습니까 (파일 추가, 파일 삭제, 파일 변경 등). Automator의 '폴더 작업'은 파일이 새로 추가되었는지 만 확인합니다.
답변:
다음 명령을 사용하여 "쉘 스크립트 실행"조치를 추가 할 수 있습니다.
find <directory> -newermm <reference_file>
그러면 <directory>
마지막 변경 이후에 변경된 모든 파일과 디렉토리가 제공됩니다 <reference_file>
. <reference_file>
Automator 스크립트를 실행할 때마다 수정해야합니다 .
man find
추가 옵션 에 대해서는 찾기 매뉴얼 페이지 ( 터미널에 입력 )를 참조하십시오. 찾기는 매우 강력하고 검색을 구체화하는 것은 일반적으로 몇 가지 추가 옵션의 문제입니다. 예를 들어 다음 이후에 수정 된 디렉토리 만 검색합니다 <reference_file>
.
find <directory> -type d -newermm <reference_file>
OSX와 함께 제공되는 버전이 충분하지 않은 findutils
경우 약간 더 많은 기능이 포함 된 버전 (brew, macports 등)을 사용해 볼 수도 있습니다.
마지막으로 확인했을 때 Automater는 백그라운드에서 Applescript를 사용하여 작업을 스크립팅합니다. Applescript에는 그다지 깊이가 없습니다. 디렉토리에있는 파일 목록을 얻을 수 있기 때문에 파일이 삭제되는 시점을 알 수는 있지만 파일의 변경 사항을 계산할 수는 없습니다.
실제로 활용해야 할 것은 파일 시스템 알림입니다. 그리고 그것이 짐승이기 때문에, 나는 kraymer의 조언을 받아 발사했습니다. 폴더의 내용이 변경 될 때마다 실행할 후크가 있습니다. Lingon (오래된 SourceForge 페이지 참조 )은 사람들이 런칭 할 수 있도록 도와주는 훌륭한 응용 프로그램입니다. 디렉토리가 수정 될 때 수행하려는 작업을 수행하기 위해 자동화 스크립트 / 응용 프로그램을 작성하고 시작된 작업을 호출하도록 할 수 있습니다.
내 이전 답변을 확인할 수 있지만 원하는 것처럼 들립니다.
fs_usage -f filesys
실행은 파일 변경을위한 방법이 아니며 fs_usage는 스포트라이트를 지원하는 기본 시스템을 사용합니다.
편집 : 나는 여기에 완전히 틀렸다. Launchd에는 파일 또는 디렉토리 변경 작업을 수행하는 것과 같은 기능이 필요합니다.
.plist 파일을 만듭니다.
"Conf 파일을위한 XML SUX!" (그렇습니다.)
시작된 작업에서 아래 키 중 하나 또는 둘 다를 사용하려고합니다.
WatchPaths <array of strings>
This optional key causes the job to be started if any one of the listed
paths are modified.
QueueDirectories <array of strings>
Much like the WatchPaths option, this key will watch the paths for modi-
fications. The difference being that the job will only be started if the
path is a directory and the directory is not empty.