20145239 Linux下常用的ls命令总结

通过学习本周的教学视频和要求掌握的内容,发现ls命令被使用的次数非常多,但作为一个初学者,可能我只会ls或者顶多ls -l两种用法。但其实ls是一个非常实用的指令,因此我想简单的总结一下ls的常用命令。

  • ls,英文全名:list 即列表的意思。

常用命令(以本周的10io文件夹为例):

1. ls -a 列出文件下所有的文件,包括以“.“开头的隐藏文件(linux下文件隐藏文件是以.开头的,如果存在..代表存在着父目录)。

2. ls -l 列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等。

3. ls -F 在每一个文件的末尾加上一个字符说明该文件的类型。"@"表示符号链接、"|"表示FIFOS、"/"表示目录、"="表示套接字。

4. ls -s 在每个文件的后面打印出文件的大小。 size(大小)

5. ls -t 按时间进行文件的排序。 time(时间)

6. ls -A 列出除了"."和".."以外的文件。

7. ls -R 将目录下所有的子目录的文件都列出来,相当于我们编程中的“递归”实现。

8. ls -L 列出文件的链接名。Link(链接)

9. ls -S 以文件的大小进行排序

文件颜色含义:

绿色---->代表可执行文件
红色---->代表压缩文件
深蓝色---->代表目录
浅蓝色----->代表链接文件
灰色---->代表其它的一些文件

所有ls命令列举:

以下是几乎所有ls命令的选项,很多可能并不常用但可以作为了解。

-a 列出目录下的所有文件,包括以 . 开头的隐含文件。 
  -b 把文件名中不可输出的字符用反斜杠加字符编号(就象在C语言里一样)的形式列出。 
  -c 输出文件的 i 节点的修改时间,并以此排序。 
  -d 将目录象文件一样显示,而不是显示其下的文件。 
  -e 输出时间的全部信息,而不是输出简略信息。 
  -f -U 对输出的文件不排序。 
  -i 输出文件的 i 节点的索引信息。 
  -k 以 k 字节的形式表示文件的大小。 
  -l 列出文件的详细信息。 
  -m 横向输出文件名,并以“,”作分格符。 
  -n 用数字的 UID,GID 代替名称。 
  -o 显示文件的除组信息外的详细信息。 
  -p -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通 
          文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字。
  -q 用?代替不可输出的字符。 
  -r 对目录反向排序。 
  -s 在每个文件名后输出该文件的大小。 
  -t 以时间排序。 
  -u 以文件上次被访问的时间排序。 
  -x 按列输出,横向排序。 
  -A 显示除 “.”和“..”外的所有文件。 
  -B 不输出以 “~”结尾的备份文件。 
  -C 按列输出,纵向排序。 
  -G 输出文件的组的信息。 
  -L 列出链接文件名而不是链接到的文件。 
  -N 不限制文件长度。 
  -Q 把输出的文件名用双引号括起来。 
  -R 列出所有子目录下的文件。 
  -S 以文件大小排序。 
  -X 以文件的扩展名(最后一个 . 后的字符)排序。 
  -1 一行只输出一个文件。 
  --color=no 不显示彩色文件名 
  --help 在标准输出上显示帮助信息。 
  --version 在标准输出上输出版本信息并退出。

自己编写ls命令:

其实ls命令是可以自己编写的,但我在自己尝试编写ls命令时发现还是有困难,对许多函数的理解不到位。这里提供一个可以运行的自己编写的ls命令的代码,可以供大家学习参考。

#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <pwd.h>
#include <grp.h>
#include <time.h>
#include <dirent.h>
int fun1(char *dir,char *filename)
{
struct stat buf;
char out[];
if(stat(dir,&buf)<)
{
perror("stat");
return (-); } switch(buf.st_mode & S_IFMT)
{
case S_IFREG:
printf("-");
break;
case S_IFDIR:
printf("d");
break;
case S_IFCHR:
printf("c");
break;
case S_IFBLK:
printf("b");
break;
case S_IFIFO:
printf("p");
break;
case S_IFLNK:
printf("l");
break;
case S_IFSOCK:
printf("s");
break;
} int n;
for(n=;n>=;n--)
{
if(buf.st_mode&(<<n))
{
switch(n%)
{
case :
printf("r");
break;
case :
printf("w");
break;
case :
printf("x");
break;
default:
break; }
}
else
{
printf("-");
}
} printf(" %d",buf.st_nlink); struct passwd *pw;
pw = getpwuid(buf.st_uid);
printf(" %s",pw->pw_name); struct group *gr;
gr = getgrgid(buf.st_gid);
printf(" %s",gr->gr_name); printf(" %ld",buf.st_size); struct tm *t;
t = localtime(&buf.st_atime);
printf(" %d-%d-%d %d:%d",t->tm_year+,
t->tm_mon+,
t->tm_mday,
t->tm_hour,
t->tm_min);
printf(" %s ",filename); if(S_ISLNK(buf.st_mode))
{
printf(" -> ");
if(readlink(filename,out,)==-)
{ }
printf("%s",out); }
printf("\n");
return ;
} int main(int argc ,char **argv)
{
char w[];
memset(w,,); if(argc<)
strcpy(w,"./"); else
strcpy(w,argv[]);
struct stat buf;
char name[];
if(stat(w,&buf)<)
{
fprintf(stderr,"stat error:%s\n",strerror(errno));
return -;
} if(S_ISDIR(buf.st_mode))
{
DIR *dir;
dir = opendir(w);
struct dirent *pdr;
while ((pdr = readdir(dir))!=NULL)
{
if(pdr->d_name[]=='.')
{
}
else
{
printf(" dir:%s \n",pdr->d_name);
memset(name,,);
strcpy(name,w);
// strcat(name,"/");
strcat(name,pdr->d_name);
fun1(name,pdr->d_name);
} }
}
else
{
fun1(w,w);
}
return ;
}

运行结果:

20145239 Linux下常用的ls命令总结的更多相关文章

  1. Linux 下常用解压命令(转载)

    Linux下常用文件解压(包括rpm.deb包) Linux下怎么解后缀名是gzip的文件?1.以.a为扩展名的文件:#tar xv file.a2.以.z为扩展名的文件:#uncompress fi ...

  2. linux下常用文件传输命令 (转)

    因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp, ...

  3. linux下常用文件传输命令(转)

    因为工作原因,需要经常在不同的服务器见进行文件传输,特别是大文件的传输,因此对linux下不同服务器间数据传输命令和工具进行了研究和总结.主要是rcp,scp,rsync,ftp,sftp,lftp, ...

  4. Linux下常用的shell命令记录1

     硬件篇 CPU相关 lscpu #查看的是cpu的统计信息. cat /proc/cpuinfo #查看CPU信息详细信息,如每个CPU的型号,主频等 内存相关 free -m #概要查看内存情况 ...

  5. Linux下常用的shell命令记录

     硬件篇 CPU相关 lscpu #查看的是cpu的统计信息. cat /proc/cpuinfo #查看CPU信息详细信息,如每个CPU的型号,主频等 内存相关 free -m #概要查看内存情况 ...

  6. Linux 下常用的Shell 命令

    英文原文链接:https://www.lopezferrando.com/30-interesting-shell-commands/ 1. 监控命令(每2秒运行一次) watch "ls ...

  7. linux下常用关机命令

    linux下常用的关机命令有:shutdown.halt.poweroff.init:重启命令有:reboot.下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法. 首先来看一下 ...

  8. Linux 下常用命令

    linux 下常用命令: 1.删除文件命令为 rm 2.创建目录的命令是:mkdir 3.删除目录的命令是rmdir(空目录) 4.切换到root帐号:su 5.查看所有进程:ps -aux 6.杀死 ...

  9. linux下常用命令备忘

    转自:Linux 命令集锦 linux下查看监听端口对应的进程 # lsof -i:9000 # lsof -Pnl +M -i4 如果退格键变成了:"^h". 终端连接unix删 ...

随机推荐

  1. 转: 为什么做java的web开发我们会使用struts2,springMVC和spring这样的框架?

    from: https://github.com/RubyLouvre/agate/issues/8 今年我一直在思考web开发里的前后端分离的问题,到了现在也颇有点心得了,随着这个问题的深入,再加以 ...

  2. vue2.0 仿手机新闻站(七)过滤器、动画效果

    1.全局过滤器 (1)normalTime.js  自定义 将 时间戳 转换成 日期格式 过滤器 /** * 将 时间戳 转换成 日期格式 */ export const normalTime = ( ...

  3. ps快捷键记录

    alt+delete  前景色填充 ctrl+delete  背景色填充 alt+shift+鼠标调节  变换选取,做圆环 ctrl+t  自由变换 alt+鼠标拖动  快捷复制某区域 delete ...

  4. 数字精确运算BigDecimal经常用法

    import java.math.BigDecimal;  public class Arith {  /**  * 因为Java的简单类型不可以精确的对浮点数进行运算,这个工具类提供精  * 确的浮 ...

  5. 循环时的dom操作

    <body> <div id="resText"></div> <div id="reshtml"></d ...

  6. 有一个直方图,用一个整数数组表示,其中每列的宽度为1,求所给直方图包含的最大矩形面积。比如,对于直方图[2,7,9,4],它所包含的最大矩形的面积为14(即[7,9]包涵的7x2的矩形)。给定一个直方图A及它的总宽度n,请返回最大矩形面积。保证直方图宽度小于等于500。保证结果在int范围内。

    // ConsoleApplication5.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<vector> ...

  7. static修饰内部类

    创建内容类的方式通过外部类的实例对象来创建 public class AA { int a =1; class BB { int b=3 ; } public static void main(Str ...

  8. JAVA中两个Set比较找出交集、差集、并集

    当做到某些功能的时候,使用Set能够快速方便地将需要的类型以集合类型保存在一个变量中,Set是最简单的一种集合,集合中的对象不按特定的方式排序,并且没有重复对象. //两个Set比较找出交集.差集.并 ...

  9. Cesium--气泡弹窗

    参考资料 首先感谢以下博主们的帮助,本人刚接触Cesium不久,无奈只能拾人牙慧了. 由于cesium没有自带的点击弹出气泡的功能,所以需要自己去开发一个这样的功能,网络上资源很多,看到基本思路都一致 ...

  10. insert小细节,大问题

    今天现场报流程无法查看,已查看流程表中没有数据了.昨天有运行过删除垃圾数据的脚步.大致过程是: create table bak_test a as select * from test; creat ...