• 大小: 14KB
    文件类型: .c
    金币: 2
    下载: 0 次
    发布日期: 2024-01-27
  • 语言: 其他
  • 标签: linux  ls  命令  

资源简介

自己写的linux ls 命令 包括 -l -R -a -U 及各种组合,还有是三种特殊位

资源截图

代码片段和文件信息

#include
#include
#include
#include
#include
#include
#include
#include
void dostat();
void sort_R(int );
void futian_do_ls(char []int);
int flag =0;
char  name[100]=“ “;
void show_stat_info(char *char *struct stat *);
void mode_to_letter(int char []);
char *gid_to_name(gid_t);
char *uid_to_name(uid_t);
char ftname[100][100];
char uname[100][100];
char sign[100][100];
char sstring[100][100];
int ft=0;
int f;
void do_sort1(int );
void count_byt(char *char *struct stat *);
int allbyt=0;
struct nandt{
char name2[100];
char name1[100];
int time1;
}timet[100];
int t=0;
void sortbytime();
void sort();
main(int acchar *av[])
{
int x=0j;
int sx=0ss=0;
        if(ac==1)     //不带参数查看当前目录。
        {
                flag=0;
                futian_do_ls(“.“flag);
        }
else
{
for(x=1;x if(av[x][0]==‘-‘)
{
strcpy(sign[sx]av[x]);
sx++;

}
else
{

strcpy(sstring[ss]av[x]);
ss++;
}
if(ss==0)//没有目录全是命令
{
strcpy(sstring[ss]“.“);
ss++;
}
}
if(sx==0)//没有输入命令 全是目录
{
flag=0;
for(x=0;x {
printf(“%s:\n“sstring[x]);
futian_do_ls(sstring[x]flag);
}
}
if(sx==1)//只有一个命令
{

for(x=ss-1;x>=0;x--)
{
name[100]=‘\0‘;
t=0;
ftname[100][100]=‘\0‘;
printf(“%s:\n“sstring[x]);
if(strcmp(sign[0]“-a“)==0)
                 {
                         flag=1;
                         futian_do_ls(sstring[x]flag);
                 }
if(strcmp(sign[0]“-l“)==0)
                 {
                         flag=2;
                         futian_do_ls(sstring[x]flag);
                 }
if(strcmp(sign[0]“-u“)==0)
{
                                flag=4;
                                futian_do_ls(sstring[x]flag);
                        }
if(strcmp(sign[0]“-R“)==0)
{
                                flag=7;
                                futian_do_ls(sstring[x]flag);
                        }

}

}

if(sx==2)//有两个命令任何组合
{

for(x=ss-1;x>=0;x--)
{
name[100]=‘\0‘;
t=0;
ftname[100][100]=‘\0‘;
printf(“%s:\n“sstring[x]);
if((strcmp(sign[0]“-l“)==0&&strcmp(sign[1]“-a“)==0)||(strcmp(sign[1]“-l“)==0&&strcmp(sign[0]“-a“)==0))
{
                         flag=3;
                         futian_do_ls(sstring[x]flag);
                 }
if((strcmp(sign[0]“-u“)==0&&strcmp(sign[13]“-a“)==0)||(strcmp(sign[1]“-u“)==0&&strcmp(sign[0]“-a“)==0))
{
                         flag=5;
                         futian_do_ls(sstring[x]flag);
                 }
if((strcmp(sign[0]“-u“)==0&&strcmp(sign[1]“-l“)==0)||(strcmp(sign[1]“-u“)==0&&strcmp(sign[0]“-l“)==0))
{
                         flag=6;
                         futian_do_ls(sstring[x]flag);
                 }
if((strcmp(sign[0]“-R“)==0&&strcmp(sign[1]“-l“)==0)||(strcmp(sign[1]“-R“)==0&&strcmp(sign[0]“-l“)==0))
{
                         flag=8;
       

评论

共有 条评论