普通文件: -,f
目录文件: d
链接文件(符号链接): L
设备文件:
字符设备:c
块设备:b
命名管道: p
套接字文件: s
linux文件时间戳
时间分为三种类型:创建时间,
修改时间:open
访问时间:读写
改变时间:源数据发生改变时间
4. ls -s 在每个文件的后面打印出文件的大小。 size(大小,以K为单位)
5. ls -t 按时间进行文件的排序 Time(时间)
6. ls -A 列出除了"."和".."以外的文件。
7. ls -R 将目录下所有的子目录的文件都列出来,相当于我们编程中的“递归”实现
8. ls -L 列出文件的链接名。Link(链接)
9. ls -S 以文件的大小进行排序
以上是一些关于ls命令的一些用法,当然还有好多没有列出来,大家可以man一下。有助于学习英文
ls可以结合管道符”|“来进行一下复杂的操作。比如: ls | less用于实现文件列表的分页,ls
计算当前目录下的文件数量
ls -|*|grep "^-"| wc -|
最后说一下linux下文件的一些文件颜色的含义
绿色---->代表可执行文件,(绿色代表通行证的意思)呵呵
红色---->代表压缩文件
深蓝色---->代表目录
浅蓝色----->代表链接文件
灰色---->代表其它的一些文件
linux系统中ls命令的用法
ls命令是linux下最常用的命令。ls命令就是list的缩写,缺省下ls用来打印出当前目录的清单,如果ls指定其他目录,那么就会显示指定目录里的文件及文件夹清单。
通过ls 命令不仅可以查看linux文件夹包含的文件,而且可以查看文件权限(包括目录、文件夹、文件权限),查看目录信息等等,ls 命令在日常的linux操作中用的很多,在此给大家介绍一下ls 命令的使用方法。
一、ls命令使用介绍
ls命令格式:ls [选项] [目录名]。
ls命令功能:列出目标目录中所有的子目录和文件。
ls 命令的参数选项说明:
-a, –all 列出目录下的所有文件,包括以 . 开头的隐含文件。
-A, –almost-all 列出除了 . 及 .. 以外的任何项目
–author 印出每个文件的作者
-b, –escape 把文件名中不可输出的字符用反斜杠加字符编号的形式列出。
–block-size=大小 块以指定<大小>的字节为单位
-B, –ignore-backups 不列出任何以 ~ 字符结束的项目
-c 输出文件的 ctime (文件状态最后更改的时间),并根据 ctime 排序。
-C 每栏由上至下列出项目
–color[=WHEN] 控制是否使用色彩分辨文件。WHEN 可以是‘never’、‘always’或‘auto’其中之一
-d, –directory 将目录象文件一样显示,而不是显示其下的文件。
-D, –dired 产生适合 Emacs 的 dired 模式使用的结果
-f 对输出的文件不进行排序,-aU 选项生效,-lst 选项失效
-F, –classify 加上文件类型的指示符号 (*/=@| 其中一个)
–format=关键字 across -x,commas -m,horizontal -x,long -l,
single-column -1,verbose -l,vertical -C
–full-time 即 -l –time-style=full-iso
-g 类似 -l,但不列出所有者
-G, –no-group 不列出任何有关组的信息
-h, –human-readable 以容易理解的格式列出文件大小 (例如 1K 234M 2G)
–si 类似 -h,但文件大小取 1000 的次方而不是 1024
-H, –dereference-command-line 使用命令列中的符号链接指示的真正目的地
–indicator-style=方式 指定在每个项目名称后加上指示符号<方式>:
none (默认),classify (-F),file-type (-p)
-i, –inode 印出每个文件的 inode 号
-I, –ignore=样式 不印出任何符合 shell 万用字符<样式>的项目
-k 即 –block-size=1K,以 k 字节的形式表示文件的大小。
-l 列出文件的详细信息。
-L, –dereference 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息
-m 所有项目以逗号分隔,并填满整行行宽
-n, –numeric-uid-gid 类似 -l,用数字的 UID,GID 代替名称。
-N, –literal 印出未经处理的项目名称 (例如不特别处理控制字符)
-o 类似 -l,显示文件的除组信息外的详细信息。
-p, -F 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套接字
(sockets)。
-q, –hide-control-chars 以 ? 字符代替无法打印的字符
–show-control-chars 直接显示无法打印的字符 (这是默认方式,除非调用的程序名称是‘ls’而且是在终端机画面输出结果)
-Q, –quote-name 将项目名称括上双引号
–quoting-style=方式 使用指定的 quoting <方式>显示项目的名称:literal、locale、shell、shell-always、c、escape
-r, –reverse 依相反次序排列
-R, –recursive 同时列出所有子目录层
-s, –size 以块大小为单位列出所有文件的大小
-S 根据文件大小排序
–sort=WORD 以下是可选用的 WORD 和它们代表的相应选项:
extension -X status -c
none -U time -t
size -S atime -u
time -t access -u
version -v use -u
-t 以文件修改时间排序
-u 配合 -lt:显示访问时间而且依访问时间排序
配合 -l:显示访问时间但根据名称排序
否则:根据访问时间排序
-U 不进行排序;依文件系统原有的次序列出项目
-v 根据版本进行排序
-w, –width=COLS 自行指定屏幕宽度而不使用目前的数值
-x 逐行列出项目而不是逐栏列出
-X 根据扩展名排序
-1 每行只列出一个文件
–help 显示此帮助信息并离开
–version 显示版本信息并离开
下面来举几个例子来说明Linux ls 命令如何使用。
二、ls命令使用举例
1>列出/linux/ls-file 文件夹下的所有文件和目录的详细资料。
[linux ~]$ ls -l -R /linux/ls-file
输入上面的命令回车后,就会显示目录下所有文件的详细信息
在使用 ls 命令时要注意命令的格式:在命令提示符后,首先是命令的关键字,接下来是命令参数,在命令参数之前要有一短横线“-”,所有的命令参数都有特定的作用,自己可以根据需要选用一个或者多个参数,在命令参数的后面是命令的操作对象。
在以上这条命令“”ls -l -R /linux/ls-file”中,”ls” 是命令关键字,”-l -R”是参数,”/linux/ls-file”是命令的操作对象。在这条命令中,使用到了两个参数,分别为”l”和”R”,你也可以把他们放在一起使用,如下所示:
[linux ~]$ ls -lR /linux/ls-file
这种形式和上面的命令形式执行的结果是完全一样的。
2>只列出子目录
1. ls -F | grep /$ //说明文件夹以/结尾
2. ls -l | grep “^d”
3>列出目前工作目录下所有名称是s 开头的档案,愈新的排愈后面,可以使用如下命令:
ls -ltr s*
4>将/linux 目录以下所有目录及档案详细资料列出:
ls -lR /linux
5>列出目前工作目录下所有档案及目录;目录于名称后加”/”, 可执行档于名称后加”*” :
ls -AF
用ls -l命令查看某一个目录会得到一个9个字段的列表.
第1行显示的信息: 总用量(total) — 这个数值是该目录下所有文件及目录列表第5个字段的和(以k为单位),也就是该目录的大小.
第1字段: 文件属性字段
文件属性字段总共有10个字母组成,第一个字母表示文件类型,如果这个字母是一个减号”-”,则说明该文件是一个普通文件.字母”d”表示该文件是一个目录,字母”d”,是dirtectory(目录)的缩写.
请注意,一个目录或者说一个文件夹是一个特殊文件,这个特殊文件存放的是其他文件和文件夹的相关信息.
第2字段
文件硬链接数或目录子目录数
第3字段:
文件拥有者
第4字段:
文件拥有者所在的组
第5字段:
文件文件大小(以字节为单位)
第6字段:
文件创建月份(month)
第7字段:
文件创建日期(day)
第8字段:
文件创建时间(HH:mm或YEAR)
第9字段:
文件名 (如果是一个符号链接,那么会有一个 “->” 箭头符号,后面根一个它指向的文件)
1;2c after using cat or more on binary files
I noticed that if you use the hex 05 in a file and cat or more the file you can get bash to say 1;2c.
oxagast@likon ~/code $ cat fmore ^[[?1;2coxagast@likon ~/code $ 1;2c bash: 1: command not found bash: 2c: command not found oxagast@likon ~/code $ hexdump fmore 0000000 0005 0000001 oxagast@likon ~/code $
I was just interested in why it does this and if it's a security bug, considering most people, when using more, will press the return key until the files over, so you could craft a file that looks normal and wait until they get to the end and if an executable file 1 or 2c is in the path (or if you could possibly change what those values are) it would execute them once it drops back to bash. The fmore file does not have to be set to executable or anything.
It's in the way non-printing or control characters and escape sequences are interpreted. Abusing that can still fool some applications or log parsers so using precautions something like 'noexec less -dRUX /path/logfilename' or 'cat -v /path/filename|col -x' or using 'strings -an1|less' to read things make sense if you think you're onto something. Dropping files in (the '.' portion of the) $PATH is an ancient trick to make people execute things. Abusing it AFAIK hinges on having the required access rights to drop files in path items (meaning that if root does that you've got problems of a different magnitude) and sane path settings (e.g. the root account shouldn't have or need '.' in its path and certainly not as the first item or risk asking for trouble).
http://www.linuxquestions.org/questions/linux-security-4/1%3B2c-after-using-cat-or-more-on-binary-files-771934/