Saya mencari alat CLI yang akan menonton direktori dan memuntahkan nama-nama file yang berubah secara real time.
some_watch_command /path/to/some/folder | xargs some_callback
Saya menyadari inotify
( inotify-tools
?) Dan sepertinya itu yang saya butuhkan, tapi saya butuh sesuatu yang Linux (dalam kasus saya Ubuntu) dan kompatibel dengan OSX.
Tidak perlu kilat cepat, tetapi perlu memicu perubahan (dalam hitungan detik masuk akal). Juga, saya tidak perlu program CLI persis seperti yang disebutkan di atas. Jika beberapa teknologi yang mendasarinya ada dan mudah skrip di kedua platform itu akan menjadi besar juga.
fswatch
untuk OS X yang saya temukan pada pertanyaan yang ditandai sebagai duplikat - superuser.com/questions/445907/…Jawaban:
OS X biasanya akan menggunakan Tindakan Folder atau Launchd untuk tugas ini.
Satu-satunya alat lintas-platform yang saya tahu adalah API pengawas untuk Python (dengan demikian tersedia untuk OS X dan Linux). Instal melalui
pip
(ataueasy_install
)Itu datang dengan
watchmedo
alat baris perintah, yang memungkinkan Anda untuk menjalankan perintah shell pada peristiwa sistem. Periksa sintaks umumnya denganwatchmedo --help
Berikut adalah contoh singkat, di mana Anda dapat dengan mudah mengubah perintah dan jalur yang disorot dengan huruf tebal:
Ini hanya akan memuntahkan path ke semua file atau folder yang diubah, memungkinkan Anda untuk mem
watchmedo
- pipe output ke perintah shell lain.sumber
watchmedo
berfungsi dengan baik untuk saya. Terima kasih!Saya telah men-tweak beberapa skrip Ruby yang saya temui untuk melakukan apa yang Anda cari. Inilah kode Ruby:
Saya menamai skrip ini "OnSaveFolder.rb". Dibutuhkan dua parameter: folder yang ingin Anda perhatikan perubahannya, dan kode bash yang ingin Anda jalankan ketika ada perubahan. Sebagai contoh,
Saya harap ini membantu! Saya telah menemukan bahwa ruby bekerja sangat baik untuk jenis hal ini, dan itu diinstal pada OS X secara default.
sumber
Anda bisa memasukkan
lsof
ke dalamwatch
perintah dan memilikinya update setiap<s>
detik:dan luncurkan itu dengan filter apa pun, seperti menonton pid1, pid2, pid3 dan mengabaikan pid4
Jika itu tidak cukup, Anda selalu bisa menulis filter sendiri dengan grep.
Untuk OS X, lihat jawaban pertanyaan ini .
sumber
entr itu bagus. Anda dapat memfilter file persis yang Anda ingin tonton, seperti ini.
Jika Anda ingin hanya memonitor file tertentu di dalam direktori, Anda bisa membuat
find
perintah sehingga hanya mengembalikan file yang ingin Anda tonton.Saya merasa lebih mudah untuk mengkonfigurasi daripada
fswatch
.sumber