#include?stdio.h

創(chuàng)新互聯(lián)建站專業(yè)IDC數(shù)據(jù)服務器托管提供商,專業(yè)提供成都服務器托管,服務器租用,內(nèi)江機房主機托管,內(nèi)江機房主機托管,成都多線服務器托管等服務器托管服務。
#include?sys/types.h
#include?dirent.h
#include?sys/stat.h
#include?string.h
void?do_ls(char[]);
void?dostat(char?*);
void?show_file_info(?char?*,?struct?stat?*);
void?mode_to_letters(?int?,?char[]?);
char?*?uid_to_name(?uid_t?);
char?*?gid_to_name(?gid_t?);
main(int?ac,?char?*av[])
{
if(?ac?==?1?)
do_ls(?"."?);??????????/*顯示當前目錄*/
else
while(?--ac?){
printf("%s:\n",?*++av);???/*顯示參數(shù)指定的目錄*/
do_ls(?*av?);
}
}
void?do_ls(?char?dirname[]?)
{
DIR?*dir_ptr;
struct?dirent?*direntp;
if(?(dir_ptr?=?opendir(?dirname?))?==?NULL)????????????/*打開目錄,成功則返回?DIR?結(jié)構(gòu)指針*/
fprintf(stderr,?"ls1:?cannot?open?%s\n",?dirname);
else
{
while(?(?direntp?=?readdir(?dir_ptr?)?)?!=?NULL?)
dostat(?direntp-d_name?);
closedir(?dir_ptr?);
}
}
void?dostat(?char?*filename?)
{
struct?stat?info;
if(?stat(?filename,?info?)?==?-1?)
perror(?filename?);
else
show_file_info(?filename,?info?);
}
void?show_file_info(?char?*filename,?struct?stat?*info_p?)
{
char?*uid_to_name(),?*ctime(),?*gid_to_name(),?*filemode();
void?mode_to_letters();
char?modestr[11];
mode_to_letters(?info_p-st_mode,?modestr?);??????/*模式到字符的轉(zhuǎn)換*/
printf("%s",?modestr?);???????????????????????????/*輸出模式標識符*/
printf("%4d",?(int)info_p-st_nlink);
printf("?%-8s",?uid_to_name(info_p-st_uid));
printf("%-8s",?gid_to_name(info_p-st_gid));
printf("%8ld??",?(long)info_p-st_size);
printf("%.12s?",?4?+?ctime(info_p-st_mtime));
printf("%s\n",filename);????
}
void?mode_to_letters(?int?mode,?char?str[]?)
{
strcpy(str,"----------");
if(?S_ISDIR(mode)?)?str[0]?=?'d';?????????????????/*目錄*/
if(?S_ISCHR(mode)?)?str[0]?=?'c';?????????????????/*字符文件*/
if(?S_ISBLK(mode)?)?str[0]?=?'b';?????????????????/*塊文件*/
if(mode??S_IRUSR)??str[1]?=?'r';
if(mode??S_IWUSR)??str[2]?=?'w';
if(mode??S_IXUSR)??str[3]?=?'x';
if(mode??S_IRGRP)??str[4]?=?'r';
if(mode??S_IWGRP)??str[5]?=?'w';
if(mode??S_IXGRP)??str[6]?=?'x';
if(mode??S_IXOTH)??str[7]?=?'r';
if(mode??S_IXOTH)??str[8]?=?'w';
if(mode??S_IXOTH)??str[9]?=?'x';
}
#include?pwd.h
char?*uid_to_name(?uid_t?uid?)
/*
*返回和?uid?相應的用戶名的指針
*/
{
struct?passwd?*getpwuid(),?*pw_ptr;
static?char?numstr[10];
if(?(?pw_ptr?=?getpwuid(?uid?)?)?==?NULL?)?{
sprintf(numstr,?"%d",?uid);??????/*沒有對應的用戶名則?uid?存入?numstr,返回后以字符串的形式打印?uid*/
return?numstr;
}
else
return?pw_ptr-pw_name;??????????/*打印用戶名*/
}
#include?grp.h
char?*gid_to_name(?gid_t?gid?)
{
struct?group?*getgrgid(),?*grp_ptr;
static?char?numstr[10];
if(?(?grp_ptr?=?getgrgid(gid)?)?==?NULL?){
sprintf(numstr,?"%d",?gid);
return?numstr;
}
else
return?grp_ptr-gr_name;
}
-rwxr-xr-x 文件權(quán)限 (具體我就不解釋了,這是linux最基本的知識,man chmod或者上網(wǎng)學習一下吧)
1 硬鏈接數(shù),一般你可以理解成子目錄數(shù)(對于普通文件,總是1,對于目錄來說,為目錄下一級子目錄的個數(shù)+2 (+2是由于 . 和 .. 的原因))
root root 分別是文件的owner (所有者)和 group (組),這也是linux最基本知識,可以man chown去了解以下)
702160 文件大小
2008-05-12 11:33 一般是最后一次修改時間
bash 文件名。
ls是list的簡寫,就是列出當前目錄內(nèi)容的意思。類似于DOS下的dir命令。用法:
ls[選項][目錄或文件]
find命令是查找的意思查找;當你知道是哪個文件,然后可以用ls查找子文件;但是當不知道是什么盤符,哪個文件夾時就可以使用find命令查找。
用法:find / -name httpd.conf,下面為一些其他用法,
find / -amin -10 # 查找在系統(tǒng)中最后10分鐘訪問的文件
find / -atime -2 # 查找在系統(tǒng)中最后48小時訪問的文件
find / -empty # 查找在系統(tǒng)中為空的文件或者文件夾
find / -group cat # 查找在系統(tǒng)中屬于 groupcat的文件
find / -mmin -5 # 查找在系統(tǒng)中最后5分鐘里修改過的文件
find / -mtime -1 #查找在系統(tǒng)中最后24小時里修改過的文件
find / -nouser #查找在系統(tǒng)中屬于作廢用戶的文件
find / -user fred #查找在系統(tǒng)中屬于FRED這個用戶的文件
希望對你能有所幫助。
ls命令是linux下最常用的命令之一,ls跟dos下的dir命令是一樣的都是用來列出目錄下的文件。\x0d\x0a1. ls -a 列出文件下所有的文件,包括以“.“開頭的隱藏文件(linux下文件隱藏文件是以.開頭的,如果存在..代表存在著父目錄)。\x0d\x0a2. ls -l 列出文件的詳細信息,如創(chuàng)建者,創(chuàng)建時間,文件的讀寫權(quán)限列表等等。\x0d\x0a3. ls -F 在每一個文件的末尾加上一個字符說明該文件的類型。"@"表示符號鏈接、"|"表示FIFOS、"/"表示目錄、"="表示套接字。\x0d\x0a4. ls -s 在每個文件的后面打印出文件的大小。 size(大小)\x0d\x0a5. ls -t 按時間進行文件的排序 Time(時間)\x0d\x0a6. ls -A 列出除了"."和".."以外的文件。\x0d\x0a7. ls -R 將目錄下所有的子目錄的文件都列出來,相當于我們編程中的“遞歸”實現(xiàn)\x0d\x0a8. ls -L 列出文件的鏈接名。Link(鏈接)\x0d\x0a9. ls -S 以文件的大小進行排序
本文名稱:linux下編寫ls命令 linux的ls命令怎么用
文章路徑:http://chinadenli.net/article10/dohgcdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、搜索引擎優(yōu)化、網(wǎng)站制作、商城網(wǎng)站、小程序開發(fā)、網(wǎng)站維護
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)