Linux上的文件管理类命令(2)

时间:2022-02-18 22:14:46
Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示;

wc
统计文件中的字节数、单词数、行数、并将统计结果显示输出

-c, --bytes 打印字节数
[root@qingcheng-web ~]# wc -c /etc/passwd
935 /etc/passwd
-m, --chars 打印字符数
[root@qingcheng-web ~]# echo "123456"|wc -m
7
-l, --lines打印行数
[root@qingcheng-web ~]# wc -l /etc/passwd
21 /etc/passwd
-w, --words打印单词数
[root@qingcheng-web ~]# echo "li guo ping"|wc -w
3

cut
在文件中的每一行中提取片断

-b, --bytes=LIST   :输出这些字节
-c, --characters=LIST 输出这些字符
-d, --delimiter=DELIM 使用DELIM取代TAB做字段(field)分隔符
-f, --fields=LIST 输出这些字段
-s, --only-delimited 不显示没有分隔符的行

[root@qingcheng-web ~]# cat /etc/passwd|cut -b 1 |head -5               //输出文件的第一个字符     
r
b
d
a
l

[root@db146 ~]# cat /etc/passwd|cut -c 1-4 |head -5                        //输出文件的前四个字符
root
bin:
daem
adm:
lp:x


[root@db146 ~]# cat /etc/passwd|cut -f5 -d ':' |head -5                        //以:分隔文件,输出第一个字段
root
bin
daemon
adm
lp

sort

用法:sort [选项]...[文件]...
或:sort [选项]... --files0-from=F
串联排序所有指定文件并将结果写到标准输出。

-f:忽略字符大小写
-r:逆序
-t delimiter:字段分隔符
-k #:已指定字段为标准排序
u:unip 排序后去重
-n :s数值大小进行排序

[root@db146 ~]# cat /etc/passwd |sort                  //sort 是默认以第一个数据来排序

[root@db146 ~]# cat /etc/passwd|sort -t ':' -k 3     // /etc/passwd 内容是以:来分隔的,以第三栏来排序

[root@db146 ~]# cat /etc/passwd|sort -t ':' -k 7 -u    //查看/etc/passwd有多少个shell:对/etc/passwd的第7个域进行排序,然后去重;

uniq
uniq [option]..[input][output]

-c:显示每行重复次数
-d:仅显示重复的行
-u:仅显示不重复的行,显示唯一的行

[root@db146 lgp]# cat unqtest 
this is a test  
this is a test  
this is a test  
i am tank  
i love tank  
i love tank  
this is a test  
whom have a try  
WhoM have a try  
you  have a try  
i want to abroad  
those are good men  
we are good men

[root@db146 lgp]# uniq -c unqtest                             #uniq的一个特性,检查重复行的时候,只会检查相邻的行。
      3 this is a test 
      1 i am tank 
      2 i love tank 
      1 this is a test 
      1 whom have a try 
      1 WhoM have a try 
      1 you  have a try 
      1 i want to abroad 
      1 those are good men 
      1 we are good men

[root@db146 lgp]# sort unqtest |uniq -c
      1 i am tank  
      2 i love tank  
      1 i want to abroad  
      4 this is a test  
      1 those are good men  
      1 we are good men
      1 whom have a try  
      1 WhoM have a try  
      1 you  have a try 

[root@db146 lgp]# uniq -d -c unqtest                //显示重复的行
      3 this is a test  
      2 i love tank

cp
将文件复制至目标文件,或将多个源文件复制至目标目录
cp[option]...[-T]SOUCE DEST
cp[option]...source...directory
cp[option]...-t directory source...

cp SRC DEST
    SRC是文件:
        如果 目标不存在,新建DEST,新建DEST,并将SRC中的内容填充值DEST中;
        如果目标存在:
                如果DEST是文件,将SRC中的内容覆盖至DEST中;
                        此时建议为cp命令使用-i选项;
                如果REST是目录,在DEST下新建与源文件同名的文件,并将SRC中的内容填充至新文件中
cp SRC.... DEST
        SRC...多文件
                dest必须存在,且为目录,其他情形均会出错;
cp  SRC  DEST
        SRC是目录:
                   此选项为:-r
        如果DEST不存在,则创建指定目录,复制SRC目录中所有文件复制到DEST中

-i:交互式
-r:递归复制目录及内部所有内容
-a:归档,相当于-dR --preserver=all
-d:表示不跟踪符号链接所指向的源文件
-p:保持原与文件属性信息
-f: --force 强制覆盖
-v:显示过程

[root@db146 lgp]# cp -p test /home/    //将test文件 复制到home目录,并保留原文件的属性

[root@db146 lgp]# cp -r zabbix/ /usr/local/        //将zabbix目录复制到/usr/locat目录

[root@db146 lgp]# cp test{,.txt}                   //备份text文件,并在尾部加上.txt文件

mv
移动命令
用法:
mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY
mv [OPTION]... -t DIRECTORY SOURCE...

-i:交互式
-f:强制  
[root@db146 lgp]# mv -i ping/test  test.sh                  //将test文件重命名为test.sh

[root@db146 lgp]# mv  ping/  network                        //将ping文件夹重命名为network

rm
删除命令
rm [OPTION]... FILE...

-i:交互式
-f:强制
-r:递归
-v:详细显示进行步骤
 [root@db146 lgp]# rm test.txt                                      //删除文件需要确认
rm:是否删除普通文件 "test.txt"?y
[root@db146 lgp]# rm -f test.sh                                     //强制删除文件不确认
[root@db146 lgp]# rm -rfv test.sh network/                  //强制删除当前的test目录
已删除"network/ifcfg-eno16777736"
已删除"network/ifcfg-eth1"
已删除"network/backup/ifcfg-br0"
已删除目录:"network/backup"
已删除目录:"network/ping/hi"
已删除目录:"network/ping"
已删除目录:"network/"