Linux下如何查找可執行檔案,作為一個Linux小菜剛剛有了這個問題,
在windows中,可以通過字尾名判斷是否是可執行檔案,比如.exe,.bat等是可執行檔案,但是在Linux下呢?
Linux下不能簡單根據檔案字尾判斷是否可執行。
linux下判斷一個檔案是否可執行,關鍵看是否有可執行權限,比如:
在終端中輸入:ls -l ,會列出類似于下的清單:
-rwxrwxr-x 1 bingyue bingyue 48141 Jul 17 02:50 redis-trib.rb*
-rw-rw-r-- 1 bingyue bingyue 2163 Aug 5 23:34 release.c
drwxrwxr-x 2 bingyue bingyue 4096 Jul 22 20:03 Documents
以下面輸出為例,下劃線區域說明了檔案的權限,包括可讀、可寫、可執行等等。
【-】【rwx】【rwx】【r-x】 1 bingyue bingyue 2324109 Aug 5 23:35 redis-cli*
10個字元确定不同使用者能對檔案幹什麼:
第一個字元代表檔案(-)、目錄(d),連結(l)
其餘字元每3個一組(rwx),讀(r)、寫(w)、執行(x),分别說明檔案所有者(User)、檔案所有者所在的使用者組其他使用者(Group)、其他組使用者(Others)對該檔案擁有的權限。
第一組rwx:檔案所有者的權限 是讀、寫和執行
第二組rwx:與檔案所有者同一組的使用者的權限是讀、寫和執行
第三組r-x:不與檔案所有者同組的其他使用者的權限是讀和執行,不能寫
另外有部分檔案也可以通過字尾名判斷,比如redhat中,凡是.rpm格式的都能在redhat中執行,debian中.deb格式的在debianlinux中能直接執行。
使用
ls -F|grep "*"
Ubuntu下也可以使用
ll | grep "*"
ll不是linux下一個基本的指令,可以認為是ls -l的一個别名。
ls -F可以把檔案按照類型歸類,并且在末尾加上/ *等符号辨別。
-F, --classify append indicator (one of */=>@|) to entries,
-F和--classify選項可以對清單檢視檔案添加字尾。普通檔案不添加字尾,對可執行檔案添加*号,為目錄添加/号,為符号連結添加@号。
| 管道輸出,grep "*" 從中挑出以"*"結尾的行并輸出。
類似的,
使用ls -F|grep "/" 可以查找目錄
使用ls -F|grep "@" 可以查找軟連接配接
另外,使用ls -color 可以辨別出可執行檔案:

執行個體輸出:
本文轉自邴越部落格園部落格,原文連結:http://www.cnblogs.com/binyue/p/4707948.html,如需轉載請自行聯系原作者