Linux?ls(英文全拼: list directory contents)命令用于顯示指定工作目錄下之內容(列出目前工作目錄所含的文件及子目錄)。
語法
ls [-alrtAFR] [name...]
參數?:
- -a 顯示所有文件及目錄 (.?開頭的隱藏文件也會列出)
- -d 只列出目錄(不遞歸列出目錄內的文件)。
- -l 以長格式顯示文件和目錄信息,包括權限、所有者、大小、創建時間等。
- -r 倒序顯示文件和目錄。
- -t 將按照修改時間排序,最新的文件在最前面。
- -A 同 -a ,但不列出 "." (目前目錄) 及 ".." (父目錄)
- -F 在列出的文件名稱后加一符號;例如可執行檔則加 "*", 目錄則加 "/"
- -R 遞歸顯示目錄中的所有文件和子目錄。
ls -l # 以長格式顯示當前目錄中的文件和目錄
ls -a # 顯示當前目錄中的所有文件和目錄,包括隱藏文件
ls -lh # 以人類可讀的方式顯示當前目錄中的文件和目錄大小
ls -t # 按照修改時間排序顯示當前目錄中的文件和目錄
ls -R # 遞歸顯示當前目錄中的所有文件和子目錄
ls -l /etc/passwd # 顯示/etc/passwd文件的詳細信息
實例
ls "my file.txt" # 列出文件名為"my file.txt"的文件
ls my\ file.txt # 列出文件名為"my file.txt"的文件
ls -- -filename # 列出文件名為"-filename"的文件
將 /bin 目錄以下所有目錄及文件詳細資料列出:
ls -lR /bin
當文件名包含空格、特殊字符或者開始字符為破折號時,可以使用反斜杠(\)進行轉義,或者使用引號將文件名括起來。例如:
ls "my file.txt" # 列出文件名為"my file.txt"的文件
ls my\ file.txt # 列出文件名為"my file.txt"的文件
ls -- -filename # 列出文件名為"-filename"的文件
ls 命令還可以使用通配符進行模式匹配,例如?*?表示匹配任意字符,??表示匹配一個字符,[...]?表示匹配指定范圍內的字符。例如:
ls *.txt # 列出所有擴展名為.txt的文件
ls file?.txt # 列出文件名為file?.txt的文件,其中?表示任意一個字符
ls [abc]*.txt # 列出以a、b或c開頭、擴展名為.txt的文件
在使用?ls -l?命令時,第一列的字符表示文件或目錄的類型和權限。其中第一個字符表示文件類型,例如:
- - 表示普通文件
- d 表示目錄
- l 表示符號鏈接
- c 表示字符設備文件
- b 表示塊設備文件
- s 表示套接字文件
- p 表示管道文件
在使用?ls -l?命令時,第一列的其余 9 個字符表示文件或目錄的訪問權限,分別對應三個字符一組的?rwx?權限。例如
:
- r 表示讀取權限
- w 表示寫入權限
- x 表示執行權限
- - 表示沒有對應權限
前三個字符表示所有者的權限,中間三個字符表示所屬組的權限,后三個字符表示其他用戶的權限。例如:
-rw-r--r-- 1 user group 4096 Feb 21 12:00 file.txt
表示文件名為file.txt的文件,所有者具有讀寫權限,所屬組和其他用戶只有讀取權限。