[Linux⼩技巧]查看⽂件夹⼤⼩及所属⽤户组
⼀、linux中查看⽂件夹⼤⼩及所属⽤户组——du和ls命令参数的⽤法
du命令使⽤⽰例:
1> 要显⽰⼀个⽬录树及其每个⼦树的磁盘使⽤情况
du -h /home/linux
#-h ⾃动根据⼤⼩以k、m、g为单位显⽰,提⾼信息的可读性。kb、mb、gb是以1024为换算单位, -h以1000为换算单位;
#若省略/home/linux路径⽬录,则显⽰当前⽬录的;
du -sh /home/linux
#-s 仅显⽰总计,即显⽰路径⽬录或当前⽬录的总⼤⼩。
2>查看当前⽬录下所有⽬录以及⼦⽬录的⼤⼩:
du -h .
#“.”代表当前⽬录下。也可以换成⼀个明确的路径
#-h表⽰⾃动⽤K、M、G的⼈性化形式显⽰
3>查看当前⽬录下user⽬录的⼤⼩,并不想看其他⽬录以及其⼦⽬录:
du -sh user
#-s表⽰总结的意思,即只列出⼀个总结的值
du -h –max-depth=0 user
–max-depth=n表⽰只深⼊到第n层⽬录,此处设置为0,即表⽰不深⼊到⼦⽬录。
4>列出user⽬录及其⼦⽬录下所有⽬录和⽂件的⼤⼩:
du -ah user
#-a表⽰包括⽬录和⽂件
5>列出当前⽬录中的⽬录名不包括xyz字符串的⽬录的⼤⼩:
du -h –exclude=’*xyz*’
6>想在⼀个屏幕下列出更多的关于user⽬录及⼦⽬录⼤⼩的信息:
du -0h user
#-0(杠零)表⽰每列出⼀个⽬录的信息,不换⾏,⽽是直接输出下⼀个⽬录的信息。
=========================================================================
Du命令功能说明:统计⽬录(或⽂件)所占磁盘空间的⼤⼩。
语 法:du [-abcDhHklmsSx] [-L <;符号连接>][-X <⽂件>][--block-size][--exclude=<⽬录或⽂件>] [--max-depth=<⽬录层数>][--help][--version][⽬录或⽂件]
常⽤参数:
-a或-all 为每个指定⽂件显⽰磁盘使⽤情况,或者为⽬录中每个⽂件显⽰各⾃磁盘使⽤情况。
-b或-bytes 显⽰⽬录或⽂件⼤⼩时,以byte为单位。
-c或–total 除了显⽰⽬录或⽂件的⼤⼩外,同时也显⽰所有⽬录或⽂件的总和。
-D或–dereference-args 显⽰指定符号连接的源⽂件⼤⼩。
-h或–human-readable 以K,M,G为单位,提⾼信息的可读性。
-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位,⽽不是以1024为换算单位。
-k或–kilobytes 以1024 bytes为单位。
-l或–count-links 重复计算硬件连接的⽂件。
-L<;符号连接>或–dereference<;符号连接> 显⽰选项中所指定符号连接的源⽂件⼤⼩。
-m或–megabytes 以1MB为单位。
-s或–summarize 仅显⽰总计,即当前⽬录的⼤⼩。
-S或–separate-dirs 显⽰每个⽬录的⼤⼩时,并不含其⼦⽬录的⼤⼩。
-x或–one-file-xystem 以⼀开始处理时的⽂件系统为准,若遇上其它不同的⽂件系统⽬录则略过。
-X<⽂件>或–exclude-from=<⽂件> 在<⽂件>指定⽬录或⽂件。
–exclude=<⽬录或⽂件> 略过指定的⽬录或⽂件。
–max-depth=<⽬录层数> 超过指定层数的⽬录后,予以忽略。
–help 显⽰帮助。
–version 显⽰版本信息。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
⼆、ls 命令的含义是list显⽰当前⽬录中的⽂件名字。注意不加参数它显⽰除隐藏⽂件外的所有⽂件及⽬录的名字。
1、ls-lh 查询当前⽬录下⽂件夹/⽂件⽤户所属组及权限
[root@localhost mail]# cd /
[root@localhost /]# ls -lh
total 252K
drwxr-xr-x 2 root root 4.0K Apr 20 04:02 bin
drwxr-xr-x 3 root root 4.0K Apr 11 11:50 boot
……
2、⽂件名颜⾊的含义
1)默认⾊代表普通⽂件。例:install.log
2)绿⾊代表可执⾏⽂件。例:rc.news
3)红⾊代表tar包⽂件。例:vim-7.1.tar.bz2
4)蓝⾊代表⽬录⽂件。例:aa
5)⽔红代表图象⽂件。例:Sunset.jpg
6)青⾊代表链接⽂件。例:rc4.d(此类⽂件相当于快捷⽅式)
7)黄⾊代表设备⽂件。例:fd0
火炬之光 局域网3、ls命令其他⽰例:
1)
ls –a(all):表⽰列出所有的⽂件,包括以"."开头的隐藏⽂件。位于这个列表的起⾸处的 .. 和 . 依次是指⽗⽬录和你的当前⽬录。
2)
[root@localhost ~]# ls -l
总计 152
-rw-r--r-- 1 root root 2915 08-03 06:16 a
-rw------- 1 root root 1086 07-29 18:35 anaconda-ks.cfg
…………………………………………
第1⾏:总计(total)
Total后⾯的数字是指当前⽬录下所有⽂件所占⽤的空间总和。使⽤ls –lh可查看,也可使⽤ls –alh查看
第1字段: ⽂件属性字段
-rw-r--r-- 1 root root 762 07-29 18:19 exit
⽂件属性字段总共有10个字母组成;第⼀个字符表⽰⽂件类型。
-表⽰该⽂件是⼀个普通⽂件
d表⽰该⽂件是⼀个⽬录,字母"d",是dirtectory(⽬录)的缩写
注意:⽬录或者是特殊⽂件,这个特殊⽂件存放其他⽂件或⽬录的相关信息
l表⽰该⽂件是⼀个链接⽂件。字母"l"是link(链接)的缩写,类似于windows下的快捷⽅式
b的表⽰块设备⽂件(block),⼀般置于/dev⽬录下,设备⽂件是普通⽂件和程序访问硬件设备的⼊⼝,是很特殊的⽂件。没有⽂件⼤⼩,只有⼀个主设备号和⼀个辅设备号。⼀次传输数据为⼀整块的被称为块设备,如硬盘、光盘等。最⼩数据传输单位为⼀个数据块(通常⼀个数据块的⼤⼩为512字节)
c表⽰该⽂件是⼀个字符设备⽂件(character),⼀般置于/dev⽬录下,⼀次传输⼀个字节的设备被称为字符设备,如键盘、字符终端等,传输数据的最⼩单位为⼀个字节
p表⽰该⽂件为命令管道⽂件。与shell编程有关的⽂件
s表⽰该⽂件为sock⽂件。与shell编程有关的⽂件
链接⽂件分为硬链接或符号链接两种。
硬链接:多个指向同⼀⽂件。硬链接⽂件⼤⼩完全相同,如有多个硬链接,所链接的⽂件只是⼀个⽂件⼤⼩。
同⼀个⽂件所有的⽂件都是等价的,操作系统不区分链接创建的先后顺序,若⼀个⽂件存在两个链接,那么除去⼀个⽂件还可以通过另外⼀个⽂件来访问该⽂件,也可以除去创建链接时⽤到的⽂件,但只要还有⼀个链接存在,就可通过该连接访问⽂件。
符号链接(软链接):建⽴⼀个独⽴的⽂件,这个⽂件会让数据的读取指向它链接的⽂件内容。类似windows快捷⽅式。
第1字段后9个字母表⽰该⽂件或⽬录的权限位。
r表是读 (Read) 、w表⽰写 (Write) 、x表⽰执⾏ (eXecute)
前三个表⽰⽂件拥有者的权限,中间三个表⽰⽂件所属组拥有的权限,最后三个表⽰其他⽤户拥有的权限。
SUID和GUID解析:
s:4;g:2;o:1
4777即rwsrwxrwx。6777即rwsrwsrwx
第2字段:⽂件硬链接数
-rw-r--r-- 1 root root 762 07-29 18:19 exit
如果⼀个⽂件不是⽬录,此时这⼀字段表⽰这个⽂件所具有的硬链接数
第2字段的值为1,说明⽂件exit只有exit这⼀个⽂件名。即只有⼀个指向该链接的硬链接。
如果使⽤ln,做⼀个指向该⽂件的硬链接再查看该⽂件,该⽂件的第2字段就会变成2
[root@localhost ~]# ln exit aexit
[root@localhost ~]# ls -l
总计 160
-
rw-r--r-- 2 root root 762 07-29 18:19 aexit
-rw-r--r-- 2 root root 762 07-29 18:19 exit
此时exit 和aexit称为互为硬链接。同指向⼀个⽂件,⽆论是修改哪⼀个⽂件,另⼀个⾥也做相应的变化,即同⼀⽂件的不同⽂件名
互为硬链接的⽂件具有相同的⽂件节点。
[root@localhost ~]# ls -i aexit exit
162302 aexit 162302 exit我是特种兵的演员表
软链接设置格式:
Ln –s 源⽂件⽬标链接⽂件
# ln -s exit bexit
# ls -l
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
-rw-r--r-- 1 root root 762 07-29 18:19 exit
注意:软链接时⽂件节点号不⼀样;
[root@localhost ~]# ls -i bexit exit
161765 bexit 162302 exit
如果知道⼀个⽂件有多个⽂件名(链接⽂件)如何查他的其他⽂件名的路径?
使⽤ls -i 获得其节点号,find查。
[root@localhost ~]# ls -i /etc/sysconfig/network-scripts/ifcfg-eth0
452946 /etc/sysconfig/network-scripts/ifcfg-eth0 #节点号为 452946
[root@localhost ~]# find /etc -inum 452946
/etc/sysconfig/network-scripts/ifcfg-eth0
第2字段:链接占⽤的节点
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
该字段⽂件占⽤⼀个节点,属于软链接(符号链接)
如果是⽬录,则第2字段表⽰该⽬录所含⼦⽬录的个数
新建空⽬录,此⽬录的第⼆字段就是2,表⽰该⽬录下有两个⼦⽬录。
因为每⼀个⽬录都有⼀个指向它本⾝的⼦⽬录"." 和指向它上级⽬录的⼦⽬录"..",此默认⼦⽬录是隐藏的。
每次在⽬录下新建⼀个⼦⽬录,该⽬录第2字段的值就增1,但是新建⼀个普通⽂件该字段值不增加。
第3字段:⽂件(⽬录)拥有者
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
该字段表⽰该⽂件拥有者是谁。只有⽂件的拥有者才具有改动⽂件属性的权利。root具有改动任何⽂件属性的权利。对于⽬录,只有拥有该⽬录的⽤户,或者具有写权限的⽤户才有在⽬录下创建⽂件的权利。
如果某⼀⽤户被删除,⽽该⽤户家⽬录还存在,ls -l 查看该⽂件将显⽰⼀个代表⽤户存在前ID号的数字。
创建⽤户test,将其加⼊wang⽤户组,su切换:
[root@localhost ~]# useradd test
[root@localhost ~]# usermod -g wang test #创建⽤户test,并将其加⼊到⽤户组wang中
[root@localhost ~]# su test
没有父亲的父亲节图片[test@localhost root]$ cd /home/test
[test@localhost ~]$ touch testing
[test@localhost ~]$ ls -l testing
-rw-r--r-- 1 test wang 0 08-03 18:02 testing #最后⽤ls -l 看到第三字段的⽂件拥有者为test
[test@localhost ~]$ su root #删除⽤户test
[root@localhost ~]# userdel test
[root@localhost ~]# cd /home/test #进⼊test的家⽬录,查看刚刚创建的⽂件testing。
皇族灬天赐[root@localhost test]# ls -l
总计 4
-rw-r--r-- 1 504 wang 0 08-03 18:02 testing
第三字段变成数字,此数字是原⽤户test的ID号。因为⽂件系统对每个⽂件记录⽂件所有者的ID,⽽⾮⽤户名。
第4字段:⽂件(⽬录)拥有者所在的组
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
⼀个⽤户可以加⼊很多个组,但是其中有⼀个是主组,就是显⽰在第4字段的名称。
useradd -g指定该⽤户所在的主组,-G指定其他组
Useradd –g 组名⽤户名
第5字段: ⽂件所占⽤的空间(以字节为单位)
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
第5字段表⽰⽂件⼤⼩,如果是⽬录,表⽰该⽬录⼤⼩。注意是⽬录本⾝⼤⼩,⽽⾮⽬录及其下⾯的⽂件的总⼤⼩。
第6字段:⽂件(⽬录)最近访问(修改)时间
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
可通过touch修改创建时间 # touch exit
上班的班是什么意思把exit创建时间修改当前时间,⽂件还有最后访问时间,最后修改时间等属性。
可以⽤ls其它参数显⽰出来。
第7字段:⽂件名
lrwxrwxrwx 1 root root 4 08-03 08:27 bexit -> exit
如果是符号链接,会有"->"符号,跟着它指向的⽂件名
=========================================================================
ls(list)
功能说明:列出⽬录内容。
语 法:ls [-1aAbBcCdDfFgGhHiklLmnNopqQrRsStuUvxX][-I <;范本样式>][-T <;跳格字数>][-w <;每列字符数>][--block-size=<;区块⼤⼩>][--color=<;使⽤时机>] [--format=<;列表格式>][--full-time][--help][--indicator-style=<;标注样式>][--quoting-style=<;引号样式>][--show-control-chars][--sort=<;排序⽅式>][--time=<;时间戳记>][--version][⽂件或⽬录...]
补充说明:执⾏ls指令可列出⽬录的内容,包括⽂件和⼦⽬录的名称。
参 数:
-1 每列仅显⽰⼀个⽂件或⽬录名称。
-a或--all 下所有⽂件和⽬录。
-A或--almost-all 显⽰所有⽂件和⽬录,但不显⽰现⾏⽬录和上层⽬录。
-b或--escape 显⽰脱离字符。
-
B或--ignore-backups 忽略备份⽂件和⽬录。
-c 以更改时间排序,显⽰⽂件和⽬录。
-C 以⼜上⾄下,从左到右的直⾏⽅式显⽰⽂件和⽬录名称。
-d或--directory 显⽰⽬录名称⽽⾮其内容。
-D或--dired ⽤Emacs的模式产⽣⽂件和⽬录列表。
-f 此参数的效果和同时指定"aU"参数相同,并关闭"lst"参数的效果。
-F或--classify 在执⾏⽂件,⽬录,Socket,符号连接,管道名称后⾯,各⾃加上"*","/","=","@","|"号。
-g 次参数将忽略不予处理。
-G或--no-group 不显⽰组名称。
-h或--human-readable ⽤"K","M","G"来显⽰⽂件和⽬录的⼤⼩。
-H或--si 此参数的效果和指定"-h"参数类似,但计算单位是1000Bytes⽽⾮1024Bytes。
-i或--inode 显⽰⽂件和⽬录的inode编号。
李玉刚-I<;范本样式>或--ignore=<;范本样式> 不显⽰符合范本样式的⽂件或⽬录名称。
-k或--kilobytes 此参数的效果和指定"block-size=1024"参数相同。
-l 使⽤详细格式列表。
-L或--dereference 如遇到性质为符号连接的⽂件或⽬录,直接列出该连接所指向的原始⽂件或⽬录。
-m ⽤","号区隔每个⽂件和⽬录的名称。
-n或--numeric-uid-gid 以⽤户识别码和组识别码替代其名称。
-N或--literal 直接列出⽂件和⽬录名称,包括控制字符。
-o 此参数的效果和指定"-l" 参数类似,但不列出组名称或识别码。
-p或--file-type 此参数的效果和指定"-F"参数类似,但不会在执⾏⽂件名称后⾯加上"*"号。
-q或--hide-control-chars ⽤"?"号取代控制字符,列出⽂件和⽬录名称。
-
Q或--quote-name 把⽂件和⽬录名称以""号标⽰起来。
-r或--reverse 反向排序。
-R或--recursive 递归处理,将指定⽬录下的所有⽂件及⼦⽬录⼀并处理。
-s或--size 显⽰⽂件和⽬录的⼤⼩,以区块为单位。
-S ⽤⽂件和⽬录的⼤⼩排序。
-t ⽤⽂件和⽬录的更改时间排序。
-T<;跳格字符>或--tabsize=<;跳格字数> 设置跳格字符所对应的空⽩字符数。
-u 以最后存取时间排序,显⽰⽂件和⽬录。
-U 列出⽂件和⽬录名称时不予排序。
-v ⽂件和⽬录的名称列表以版本进⾏排序。
-w<;每列字符数>或--width=<;每列字符数> 设置每列的最⼤字符数。
-
x 以从左到右,由上⾄下的横列⽅式显⽰⽂件和⽬录名称。
-X 以⽂件和⽬录的最后⼀个扩展名排序。
--block-size=<;区块⼤⼩> 指定存放⽂件的区块⼤⼩。
--color=<;列表格式> 培植⽂件和⽬录的列表格式。
--full-time 列出完整的⽇期与时间。
--help 在线帮助。
--indicator-style=<;标注样式> 在⽂件和⽬录等名称后⾯加上标注,易于辨识该名称所属的类型。
--quoting-syte=<;引号样式> 把⽂件和⽬录名称以指定的引号样式标⽰起来。
--show-control-chars 在⽂件和⽬录列表时,使⽤控制字符。
--sort=<;排序⽅式> 配置⽂件和⽬录列表的排序⽅式。
--time=<;时间戳记> ⽤指定的时间戳记取代更改时间。
-
-version 显⽰版本信息。
发布评论