Linux基礎 ls功能的簡單實現

2021-09-30 21:33:42 字數 2084 閱讀 6957

簡單的ls實現,首先,我們需要遍歷引數目錄下的各個檔案,再根據檔案相應的性質,讀取檔案的許可權,使用者組,使用者名稱,大小,最後一次訪問的時間,再根據檔名排序後依次顯示。

具體的函式宣告如下:

1 #include

2 #include

3 #include

4 #include

5 #include

6 #include

7 #include

8 #include

9 #include

10 #include

11 #include

12 #define cnt 256

13 int file_name(dir *fp, char *path, char name[cnt]);

14 void str_sort(char name[cnt], int cnt);

15 void mode_to_char(mode_t mode, char *buf);

16 char *time_change(char *time);

17 void show(char name[cnt], int cnt);

目錄的遍歷,我們需要知道目錄下讀取到的檔案個數,所以需要返回相應的int型值。

目錄的遍歷實現如下:

1intfile_name(dir*fp,char*path,charname[cnt])

2

14closedir(fp);

15returncnt;

16}

然後我們需要了解檔案的許可權,檔案許可權儲存在相對應的引數char *buf中。

檔案許可權的解讀實現如下:

1 void mode_to_char (mode_t mode, char *buf)

2

想應的,時間的顯示不需要那麼精確,所以我們應適當的縮短時間精確度。

時間的顯示實現如下:

1 char *time_change(char *time)

2 然後,我們需要根據檔名稱按照字典序排序。

排序的實現如下:

1 void str_sort(char name[cnt], int cnt)

2

15 }

最後,我們在編寫乙個簡單的show()函式,來顯示各個檔案的資訊。

show函式實現如下:

1 void show(char name[cnt], int cnt)

2

15         mode_to_char(buf.st_mode, mode);

16         str = ctime(&buf.st_atime);

17         str = time_change(str);

18         int i;

19         for(i = strlen(name[index]) - 1; name[index][i] != '/'; i --);

20         i++;

21         printf("%10s.%2d %5s %5s%5d%13s %s\n", mode, buf.st_nlink, getpwuid(buf.st_uid)->pw_name, getgrgid(buf.st_gid)->gr_name, buf.st_size, str, name[index] + i);

22     }

23 }

這裡需要注意:

getpwuid()返回的不是我們要的使用者名稱,我們需要的是該結構體中的乙個變數——pw_name,同樣的getgrid()也應做相應的轉換。

測試**如下:

1 #include "head.h"

2 int main(int argc, char *ar**)

3

13     cnt = file_name(fp, ar**[1], name);

14     str_sort(name, cnt);

15     show(name, cnt);

16     return 0;

17 }

Linux基礎命令 ls

ls 顯示當前目錄下的所有內容。此命令的適用範圍 redhat rhel ubuntu centos suse opensuse fedora。1 語法 ls option file 2 選項列表 version 顯示命令版本資訊 help 顯示幫助文件 a all 列出所有的檔案 a almost...

Linux 基礎 ls 命令

第二天,繼續學習linux命令。ls 顯示當前目錄下的檔案和目錄,但是不會顯示隱藏的檔案和目錄。ls a 顯示當前目錄下的所有檔案和目錄。ls l 顯示當前目錄下的檔案和目錄的一些詳細資訊,其中包括 檔案型別 比如目錄 d 檔案 字元型檔案 c 或塊裝置 d 檔案的許可權 檔案的硬鏈結總數 檔案屬主...

Linux基礎ls命令

ls 命令是linux下最常用的命令,通過ls 命令不僅可以檢視linux資料夾包含的檔案 而且可以檢視檔案許可權 包括目錄 資料夾 檔案許可權 檢視目錄資訊等等。ls 命令在日常的linux操作中用的很多 命令格式 ls 選項 目錄名 命令功能 列出目標目錄中所有的子目錄和檔案。查詢常用引數 ls...