簡體   English   中英

bash 文件名完成掛起,因為它正在不相關的目錄中搜索不相關的文件

[英]bash filename completion hangs because it is searching in unrelated directories for unrelated files

當我打字

(module load /scratch/userName/productName/modules/d

后跟一個選項卡以獲得

(module load /scratch/userName/productName/modules/debug

bash 掛起一段時間並且不接受輸入。 如果我使用 strace 進行調試,我可以看到 bash 正在對 800 個(不相關)目錄中的 5000 多個(不相關)文件調用 stat()。 有人可以向我解釋一下嗎? 或者更好,解釋如何告訴 bash 只在指定目錄中搜​​索?

編輯:modules 目錄存在並且只包含兩個普通文件(調試和發布)。 所有的父目錄都是普通目錄。

編輯:我想這與 bash 將文件名完成轉發給正在使用的客戶端的能力有關。 在這種情況下,這是模塊,但我也為 git 看過它。

有人在某處注冊了一些 bash 函數來為客戶端模塊執行文件名補全。 為了禁用它,我在 ~/.bashrc 中添加了以下行:

complete -o default module

感謝https://stackoverflow.com/users/3266847/benjamin-w的提示!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM