linux中怎么用ls查找以la开头的文件

linux中怎么用ls查找以la开头的文件,第1张

1、直接使用通配符。

ls la*

这是最方便的一种方法,*表示匹配任何长度的任意字符,通过这样的方式就可以查找到所有以ls开头的文件,如果我们想查找文件名中含有la的文件,只需输入“ls *la*”即可。

2、可以使用管道,将ls输出送入grep这个程序来实现。

ls -1 | grep "^la"

-1选项表示将列出的所有文件排成一列,方便grep的匹配(grep按行匹配)。

扩展资料:

ls 指令是Linux下最常用的指令之一。

ls 命令将每个由 Directory 参数指定的目录或者每个由 File 参数指定的名称写到标准输出,以及您所要求的和标志一起的其它信息。

运用举例:

1、列出具体文件 #ls -al //这个最常用,可是往往又不彻底符合要求,

2、列出一切子目录的文件:#ls -R //上个指令仅仅列出了本目录下的一切目录和文件,可是目录下的文件不会循环的列出。

3、分屏显现:#ls -l|more //能在当时屏退出,很有用,但不能一页一页翻屏

#ls -l|less //能用pgup,pgdw 翻页,但不能在当时方位退出。

参考资料来源:百度百科-LS (LINUX中ls命令)

作用不同,指令不同。

1、作用不同,ls-t是按文件的更改时间顺序列出,ls-c是多列显示输出结果。

2、指令不同,ls-t是被选中的执行程序,ls-c是默认的执行程序。

#include <stdio.h>

#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)   /*显示参数指定的目录*/

        do_ls( *av )

    }

}

void do_ls( char dirname[] )

{

    DIR *dir_ptr

    struct dirent *direntp

    if( (dir_ptr = opendir( dirname )) == NULL)            /*打开目录,成功则返回 DIR 结构指针*/

    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 )      /*模式到字符的转换*/

    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

    }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11785148.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存