我對一切皆文件的理解,linux下不存在具體的文件類型或後綴名.exe .db .config,這種後綴能夠理解爲人爲的爲了分別文件的類型而設置的,而在linux中系統不考慮文件類型,會直接運行。linux
舉個例子,咱們在/app下建立一個內容爲 echo ‘hello world’ 的hello.txt文件而後按照windows下的擴展名更改擴展名windows
看看會發生什麼app
[root@localhost app]# echo "echo hello world">hello.txt [root@localhost app]# ls hello.txt [root@localhost app]# cat hello.txt echo hello world [root@localhost app]# chmod 777 hello.txt [root@localhost app]# ./hello.txt hello world
咱們嘗試將txt格式轉換爲.sh而後運行發現結果同樣多是巧合spa
[root@localhost app]# mv hello.txt hello.sh [root@localhost app]# ./hello.sh hello world
咱們再嘗試將.sh格式轉換爲.mp3而後運行發現結果同樣code
此次由於咱們都知道MP3是音樂媒體格式按照windows的邏輯確定會報錯blog
但在linux下運行沒有報錯或顯示內容ip
[root@localhost app]# mv hello.sh hello.mp3 [root@localhost app]# ./hello.mp3 hello world
一樣的將MP3轉換png也是同樣的pip
[root@localhost app]# mv hello.mp3 hello.png [root@localhost app]# ./hello.png hello world
咱們用大膽的想法去刪除它的擴展名入門
結果發現仍是正常的運行了class
[root@localhost app]# mv hello.png hello [root@localhost app]# ./hello hello world
最後我用打錯了的方式隨意起名
發現也沒有任何影響
[root@localhost app]# mv hello hel.fdshfujahjk213sda.sad [root@localhost app]# ./hel.fdshfujahjk213sda.sad hello world
咱們能夠得出結論,linux下不存在擴展名,只存在文件名,所謂的擴展名只是
人們爲了區分文件而自行加上的字符
• -:普通文件 *
• d: 目錄文件 *
• b: 塊設備
• c: 字符設備
• l: 符號連接文件 *
• p: 管道文件pipe
• s: 套接字文件sock
絕對路徑:從根出發一直到目標
相對路徑:相對父目錄
.爲當前路徑
..爲上級路徑即父路徑