能到處進入資料夾以後,接著我們就希望能看到每個資料夾內的檔案了。
要能夠這麼做,我們可以使用 ls 這個指令
man ls
NAME
       ls - list directory contents
首先,我們進到 ~ 裡面之後,嘗試 ls 看看
ls
奇怪!怎麼什麼都沒有?
這是因為在預設的 ~ 裡面(以我們的用戶來說是 /home/ec2-user/),確實什麼都沒有。
如果我們到 / 裡面,那就會看到不一樣的結果了
cd / 
ls
bin  boot  dev  etc  home  lib  lib64  local  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
除了昨天我們列出的資料夾以外,還有一些沒有見過的資料夾,這些就是不同系統自己設計的內容了!
不過,如果剛剛各位實際看過 man ls 裡面的內容,會看到一個參數
-a, --all
	  do not ignore entries starting with .
這是什麼意思?我們在 ~ 裡面嘗試看看
ls -a
.  ..  .bash_history  .bash_logout  .bash_profile  .bashrc  .config  .ssh  .viminfo
咦!剛剛不是才說「在預設的 ~ 裡面,確實什麼都沒有。」嗎?這些檔案是什麼!
首先,在資料夾結構內,有兩個保留的關鍵字位置
. 代表「現在的資料夾」
.. 代表「包含此資料夾的父資料夾」
所以,如果我們在 /home/ec2-user/ 內,要去 /home/ 的話,可以用 cd ..
cd ..
pwd
/home
另外,在 linux 系統裡面,有一些檔案當初設計者希望可以隱藏,這些檔案通常都會用 . 作為開頭。
我們可以嘗試進入 .ssh 看看
cd .ssh
ls
authorized_keys
就這樣!我們進入了一個隱藏的資料夾。
這樣的設計方式,在撰寫列出檔案時,只需要將開頭為 . 的內容全部忽略,我們就可以略過指定本資料夾、指定上個資料夾、以及所有的隱藏資料夾和隱藏檔案了,可以說是設計上的一個小巧思。
我們再嘗試進入 /home/ec2-user/.bash_history
cd .bash_history
-bash: cd: .bash_history: Not a directory
沒有辦法進去,因為 .bash_history 不是一個資料夾。
難道沒有辦法列的更清楚,讓我們知道哪些是資料夾,哪些是檔案嗎?
有的!答案一樣藏在 man 大師的秘笈裡面,
-F, --classify
	  append indicator (one of */=>@|) to entries
--file-type
	  likewise, except do not append '*'
利用指令參數的組合,搭配上 -a 看看
ls -a --file-type
./  ../  .bash_history  .bash_logout  .bash_profile  .bashrc  .config/  .ssh/  .viminfo
可以看到,資料夾都加上了 / 的結尾,我們很清楚的就知道哪些是資料夾,哪些是檔案了。
另外要介紹的,就是 -l 這個參數
-l     use a long listing format
我們試看看搭配上 -a,這次可以直接將兩個參數合併在一起
ls -al
drwx------  5 ec2-user ec2-user   147 Apr 22  2021 .
drwxr-xr-x  4 root     root        36 Sep  4 13:03 ..
-rw-------  1 ec2-user ec2-user  2146 Sep  5 14:46 .bash_history
-rw-r--r--  1 ec2-user ec2-user    18 Jul 15  2020 .bash_logout
-rw-r--r--  1 ec2-user ec2-user   193 Jul 15  2020 .bash_profile
-rw-r--r--  1 ec2-user ec2-user   231 Jul 15  2020 .bashrc
drwxrwxr-x  3 ec2-user ec2-user    22 Apr 19  2021 .config
drwx------  2 ec2-user ec2-user    29 Apr 19  2021 .ssh
-rw-------  1 ec2-user ec2-user 15922 Apr 22  2021 .viminfo
可以看出來,這邊還多列出了檔案的時間、作者⋯⋯等等資訊。
不過為什麼作者要列兩次?前面的 drwx------ 又代表什麼?
這些問題,我們就留到明天吧!各位明天見!