91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

linux中如何使用entr命令

發布時間:2021-10-25 11:39:08 來源:億速云 閱讀:227 作者:小新 欄目:系統運維

這篇文章給大家分享的是有關linux中如何使用entr命令的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

entr 是一個命令行工具,當每次更改一組指定文件中的任何一個時,都能運行一個任意命令。你在標準輸入給它傳遞要監控的文件列表,如下所示:

git ls-files | entr bash my-build-script.sh

或者

find . -name *.rs | entr cargo test

或者任何你希望的。

快速反饋很棒

就像世界上的每個程序員一樣,我發現每次更改代碼時都必須手動重新運行構建/測試非常煩人。

許多工具(例如 hugo 和 flask)都有一個內置的系統,可以在更改文件時自動重建,這很棒!

但是通常我會自己編寫一些自定義的構建過程(例如 bash build.sh),而 entr 讓我有了一種神奇的構建經驗,我只用一行 bash 就能得到即時反饋,知道我的改變是否修復了那個奇怪的 bug。萬歲!

重啟服務器(entr -r)

但是如果你正在運行服務器,并且每次都需要重新啟動服務器怎么辦?如果你傳遞 -r,那么 entr 會幫你的

git ls-files | entr -r python my-server.py

清除屏幕(entr -c)

另一個簡潔的標志是 -c,它讓你可以在重新運行命令之前清除屏幕,以免被前面構建的輸出分散注意力。

與 git ls-files 一起使用

通常,我要跟蹤的文件集和我在 git 中的文件列表大致相同,因此將 git ls-files 傳遞給 entr 是很自然的事情。

我現在有一個項目,有時候我剛創建的文件還沒有在 git 里。那么如果你想包含未被跟蹤的文件怎么辦呢?這些 git 命令行參數就可以做到(我是從一個讀者的郵件中得到的,謝謝你!):

git ls-files -cdmo --exclude-standard  | entr your-build-script

有人給我發了郵件,說他們做了一個 git-entr 命令,可以執行:

git ls-files -cdmo --exclude-standard | entr -d "$@"

我覺得這真是一個很棒的主意。

每次添加新文件時重啟:entr -d

git ls-files 的另一個問題是有時候我添加一個新文件,當然它還沒有在 git 中。entr 為此提供了一個很好的功能。如果你傳遞 -d,那么如果你在 entr 跟蹤的任何目錄中添加新文件,它就會退出。

我將它與一個 while 循環配合使用,它將重啟 entr 來包括新文件,如下所示:

while truedo{ git ls-files; git ls-files . --exclude-standard --others; } | entr -d your-build-scriotdone

entr 在 Linux 上的工作方式:inotify

在 Linux 中,entr 使用 inotify(用于跟蹤文件更改這樣的文件系統事件的系統)工作。如果用 strace 跟蹤它,那么你會看到每個監控文件的 inotify_add_watch 系統調用,如下所示:

inotify_add_watch(3, "static/stylesheets/screen.css", IN_ATTRIB|IN_CLOSE_WRITE|IN_CREATE|IN_DELETE_SELF|IN_MOVE_SELF) = 1152

感謝各位的閱讀!關于“linux中如何使用entr命令”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

克东县| 镇坪县| 乐陵市| 仁怀市| 南溪县| 新密市| 乐东| 余庆县| 通榆县| 交城县| 台中市| 隆昌县| 神池县| 新丰县| 石泉县| 松桃| 黎川县| 崇左市| 昭苏县| 珲春市| 和平县| 册亨县| 抚宁县| 和林格尔县| 甘肃省| 叶城县| 前郭尔| 辽中县| 栾城县| 鄂托克旗| 凤城市| 绵竹市| 浏阳市| 连江县| 乌海市| 绥阳县| 嵊泗县| 北川| 安庆市| 千阳县| 射阳县|