Shell命令-文件及目錄操作之ls、cd
阿新 • • 發佈:2019-04-08
conf 無法 iso 但是 執行 rect time sysconf oot 文件及目錄操作 - ls、cd
1、ls:列出目錄的內容及其內容屬性信息
ls命令的功能說明
ls
命令用於列出目錄的內容及其內容屬性信息。ls命令的語法格式
ls
[OPTION]... [FILE]...ls
[參數選項] [文件或目錄]ls命令的選項說明
ls
選項很多,表1為ls
命令的參數及說明:表1:
ls
命令的參數及說明
參數選項 | 解釋說明(帶*的為重點) |
---|---|
-l | 長格式顯示文件屬性* |
-a | 顯示所有字目錄和文件(包含隱藏文件)* |
-d | 只顯示目錄* |
-i | 顯示Inode號 |
-h | 人類可讀形式顯示* |
-A | 列出所有內容,不包括.與..這兩個目錄 |
-p | 目錄結尾加斜線,用來區分目錄和文件 |
-S | 根據文件大小排序 |
-R | 遞歸列出所有子目錄 |
-F | 不同文件結尾加不同標識(目錄結尾加斜線)* |
--color=auto | 不同的文件類型顯示顏色參數 |
--time-style=(long-iso,iso) | 以不同的時間格式輸出 |
-r | 倒序排序* |
-t | 按修改時間排序* |
ls命令的實踐操作
實驗環境
[[email protected] ~]# mkdir /test <-->在“/”下面創建一個test目錄 [[email protected] ~]# cd /test <-->切換到test目錄 [[email protected] /test]# touch file{1..3}.txt <-->批量創建若幹文件 [[email protected] /test]# mkdir dir{1..3} <-->批量創建若幹目錄 [[email protected] /test]# tree <-->查看上述的文件和目錄 . ├── dir1 ├── dir2 ├── dir3 ├── file1.txt ├── file2.txt └── file3.txt 3 directories, 3 files
範例1: 直接執行
ls
命令,不帶任何參數。
[[email protected] /test]# ls <-->不加參數,顯示所有文件和目錄(不包括隱藏文件)
dir1 dir2 dir3 file1.txt file2.txt file3.txt
範例2: 使用
-a
參數顯示所有文件,特別是隱藏文件。
[[email protected] /test]# touch .file4.txt <-->創建一個隱藏文件,在開頭加.即可 [[email protected] /test]# ls <-->沒有隱藏文件 dir1 dir2 dir3 file1.txt file2.txt file3.txt [[email protected] /test]# ls -a <-->列出所有內容,包括隱藏文件 . .. dir1 dir2 dir3 file1.txt file2.txt file3.txt .file4.txt [[email protected] /test]# ls -A <-->列出所有內容,不包括.和.. dir1 dir2 dir3 file1.txt file2.txt file3.txt .file4.txt
範例3: 使用
-l
參數顯示詳細信息。
[[email protected] /test]# ls -l <-->列出文件的詳細信息,及屬性及文件名。俗稱以長格式顯示
total 0
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir1
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir2
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir3
-rw-r--r-- 1 root root 0 Apr 4 14:51 file1.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file2.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file3.txt
[[email protected] /test]# ll <-->和 ls -l 效果一樣,是因為做了別名
total 0
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir1
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir2
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir3
-rw-r--r-- 1 root root 0 Apr 4 14:51 file1.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file2.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file3.txt
範例4: 顯示完整時間屬性參數
--time-style=long-iso
。
[[email protected] /test]# ls -l <-->不加的效果
total 0
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir1
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir2
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir3
-rw-r--r-- 1 root root 0 Apr 4 14:51 file1.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file2.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file3.txt
[[email protected] /test]# ls -l --time-style=long-iso <-->加了的效果,需結合參數-l
total 0
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir1
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir2
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir3
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file1.txt
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file2.txt
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file3.txt
範例5: 執行
ls
命令帶顯示內容的訪問時間屬性的參數。
[[email protected] /test]# stat file1.txt <-->顯示文件的屬性及狀態信息
File: ‘file1.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 51524120 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-04-04 14:51:43.623772862 +0800 <-->文件的訪問時間
Modify: 2019-04-04 14:51:43.623772862 +0800
Change: 2019-04-04 14:51:43.623772862 +0800
Birth: -
[[email protected] /test]# date <-->查看當下系統時間
Thu Apr 4 15:17:13 CST 2019
[[email protected] /test]# cat file1.txt <-->查看文件內容即表示訪問文件了
[[email protected] /test]# stat file1.txt <-->重新查看文件的訪問時間
File: ‘file1.txt’
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 51524120 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2019-04-04 15:17:21.452639089 +0800 <-->file1.txt的訪問時間已經變化了
Modify: 2019-04-04 14:51:43.623772862 +0800
Change: 2019-04-04 14:51:43.623772862 +0800
Birth: -
[[email protected] /test]# ls -l --time-style=long-iso --time=atime
total 0
drwxr-xr-x 2 root root 6 2019-04-04 14:52 dir1
drwxr-xr-x 2 root root 6 2019-04-04 14:52 dir2
drwxr-xr-x 2 root root 6 2019-04-04 14:52 dir3
-rw-r--r-- 1 root root 0 2019-04-04 15:17 file1.txt <-->看,只有file1.txt的文件的訪問時間發生變化
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file2.txt
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file3.txt
[[email protected] /test]# ls -l --time-style=long-iso
total 0
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir1
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir2
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir3 <-->這裏是文件的默認修改時間列
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file1.txt
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file2.txt
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file3.txt
<-->結論:--time=atime是顯示訪問時間,而非默認的修改時間
範例6: 執行
ls
命令,帶-F
參數(與tree
命令的-F
非常相似)。
[[email protected] /test]# ls -F <-->所有目錄後面加了 /
dir1/ dir2/ dir3/ file1.txt file2.txt file3.txt
[[email protected] /test]# ls -F|grep / <-->過濾目錄
dir1/
dir2/
dir3/
[[email protected] /test]# ls -F|grep -v / <-->過濾文件
file1.txt
file2.txt
file3.txt
範例7: 使用
-d
參數只顯示目錄本身信息
[[email protected] /test]# ls -l dir1 <-->無法查到dir1目錄的信息
total 0
[[email protected] /test]# ls -ld dir1 <-->顯示dir1目錄本身的信息
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir1
範例8: 使用
-R
參數遞歸查看目錄
[[email protected] /test]# mkdir dir1/sub1/test -p <-->遞歸創建目錄
[[email protected] /test]# ls -R dir1 <-->類似tree,但是沒tree好用
dir1:
sub1
dir1/sub1:
test
dir1/sub1/test:
[[email protected] /test]# ls dir1
sub1
範例8:
ls
命令的別名相關知識及設置ls別名
[[email protected] /test]# alias |grep ls <-->後續會講alias,這裏只是演示
alias l.=‘ls -d .* --color=auto‘
alias ll=‘ls -l --color=auto‘
alias ls=‘ls --color=auto‘
[[email protected] /test]# alias lst=‘ls -l --time-style=long-iso‘ <-->設置別名
[[email protected] /test]# alias |grep lst <-->檢查是否生效
alias lst=‘ls -l --time-style=long-iso‘
[[email protected] /test]# lst <-->測試結果(這裏只是臨時生效)
total 0
drwxr-xr-x 3 root root 18 2019-04-05 18:52 dir1
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir2
drwxr-xr-x 2 root root 6 2019-04-04 14:51 dir3
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file1.txt
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file2.txt
-rw-r--r-- 1 root root 0 2019-04-04 14:51 file3.txt
範例9: 查找最近更新過的文件
[[email protected] /test]# touch /etc/test.txt <-->創建一個新文件
[[email protected] /test]# ls -lrt /etc/
total 1096 <-->有1096行文件
***省略若幹文件行***
drwxr-xr-x 2 root root 38 Apr 4 18:14 ntp
-rw-r--r-- 1 root root 51 Apr 5 18:41 resolv.conf
-rw-r--r-- 1 root root 0 Apr 5 19:03 test.txt <-->看,我們新創建的就排在最後,這樣,就不用翻屏看了
[[email protected] /test]# ls -lrt /etc/|tail -1 <-->顯示最後一行,很方便吧
-rw-r--r-- 1 root root 0 Apr 5 19:03 test.txt
範例10: 顯示
inode
號並且以人類可讀的方式顯示
[[email protected] /test]# ls -lhi <-->第一列就是inode號,並且以M為單位顯示
total 51M
870845 drwxr-xr-x 3 root root 18 Apr 5 18:52 dir1
17517441 drwxr-xr-x 2 root root 6 Apr 4 14:51 dir2
33636287 drwxr-xr-x 2 root root 6 Apr 4 14:51 dir3
51524120 -rw-r--r-- 1 root root 51M Apr 5 19:16 file1.txt
51524122 -rw-r--r-- 1 root root 0 Apr 4 14:51 file2.txt
51524123 -rw-r--r-- 1 root root 0 Apr 4 14:51 file3.txt
[[email protected] /test]# ls -l <-->沒有inode號,並且以b為單位顯示
total 51832
drwxr-xr-x 3 root root 18 Apr 5 18:52 dir1
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir2
drwxr-xr-x 2 root root 6 Apr 4 14:51 dir3
-rw-r--r-- 1 root root 53075968 Apr 5 19:16 file1.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file2.txt
-rw-r--r-- 1 root root 0 Apr 4 14:51 file3.txt
2、cd:切換目錄
cd命令的功能說明
cd
命令用於從當前目錄切換到指定的工作目錄。cd命令的語法格式
cd
[-L|[-P [-e]]] [dir]cd
[參數選項] [目錄]cd命令的選項說明
cd
選項對於初學者可能容易記混,不過勤加練習就好了,表1為cd
命令的參數及說明:
表1:cd
命令的參數及說明
參數選項 | 解釋說明 |
---|---|
. | 當前目錄 |
.. | 上一級目錄 |
~ | 用戶家目錄 |
- | 上一次所在目錄,可來回切換 |
空格 | 不加任何參數,不管在哪,都直接回到用戶家目錄 |
cd命令的實踐操作
案例1: 進入系統
/etc
目錄(cd /etc
)
[[email protected] /test]# pwd <-->打印當前路徑
/test
[[email protected] /test]# cd /etc/ <-->切換到/etc目錄
[[email protected] /etc]# pwd <-->打印當前路徑
/etc
案例2: 切換到當前目錄的上一級目錄(
cd ..
)
[[email protected] /etc]# pwd
/etc
[[email protected] /etc]# cd .. <-->".."等同於"../"
[[email protected] /]# pwd
/
案例3: 進入當前目錄的父目錄的父目錄中(
cd ../../
)
[[email protected] /]# cd /test/dir1
[[email protected] /test/dir1]# pwd
/test/dir1
[[email protected] /test/dir1]# cd ../../
[[email protected] /]# pwd
/
案例4: 返回當前目錄上一次所在的目錄(
cd -
)
[[email protected] /]# cd /test/dir1
[[email protected] /test/dir1]# pwd
/test/dir1
[[email protected] /test/dir1]# cd
[[email protected] ~]# pwd
/root
[[email protected] ~]# cd -
/test/dir1
案例4: 進入當前用戶的家目錄(
cd ~
)
[[email protected] ~]# cd /test/dir1
[[email protected] /test/dir1]# pwd
/test/dir1
[[email protected] /test/dir1]# cd ~ <-->回到當前root用戶的家目錄
[[email protected] ~]# pwd
/root
[[email protected] ~]# cd /etc/sysconfig/network-scripts/
[[email protected] /etc/sysconfig/network-scripts]# pwd
/etc/sysconfig/network-scripts <-->這個目錄夠長吧
[[email protected] /etc/sysconfig/network-scripts]# cd
[[email protected] ~]# pwd <-->cd不加參數,直接回到家目錄
/root
今天就寫到這裏,有什麽疑問或出現什麽錯誤,隨時歡迎大神們發表評論指點迷津
Shell命令-文件及目錄操作之ls、cd