Linux下的可執行文件
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 可以標識出可執行文件:
實例輸出: