Bash命令完成不適用於包含
命令完成不適用於包含 :
的名稱
我一直在破解 Linux 系統(試圖讓藍牙工作,儘管這無關緊要)。
目錄結構如下
/var/lib/bluetooth/ ├── B8:27:EB:8E:A8:4D │ ├── 00:12:A1:12:09:51 │ │ └── info │ ├── 34:88:5D:70:53:44 │ │ └── info │ ├── cache │ │ ├── 00:12:A1:12:09:51 │ │ ├── 34:88:5D:70:53:44 │ │ ├── E4:CE:8F:03:00:6D │ │ └── F8:77:B8:AD:BC:AC │ └── settings
我一直在嘗試操縱這些,但命令完成不適用於任何包含
:
. 這是正常的嗎,有什麼方法可以讓命令完成工作。完整地輸入這些神秘的名稱是乏味的,而且容易出錯。
sudo ls /var/lib/bluetooth/B8:27:EB:8E:A8:4D/34:88
顯示沒有完成
sudo ls /var/lib/bluetooth/B8:27:EB:8E:A8:4D/34:88:5D:70:53:44
是好的使用萬用字元例如
00*
似乎也不起作用。
sudo ls
如果您必須使用
sudo
才能訪問目錄才能列出它,是什麼讓您認為您的 shell 可以列出它?這不是命令行補全、萬用字元、冒號、引號或 shell 版本的問題。這是一個非常簡單的權限問題。
您沒有列出該目錄的訪問權限。因此,作為您的帳戶執行的 shell 不能。由於它無法列出目錄,因此無法完成其中的名稱或擴展萬用字元。