09-linux基础命令(六)【文件管理】

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/dushansao/article/details/101672598

Linux基础命令(六)

在这里插入图片描述

文件管理(1)

touch

  • touch命令有两个功能:一是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来;二是用来创建新的空文件。

参数

  • -a:或–time=atime或–time=access或–time=use 只更改存取时间;

  • -c:或–no-create 不建立任何文件;

  • -d:<时间日期> 使用指定的日期时间,而非现在的时间;

  • -f:此参数将忽略不予处理,仅负责解决BSD版本touch指令的兼容性问题;

  • -m:或–time=mtime或–time=modify 只更该变动时间;

  • -r:<参考文件或目录> 把指定文件或目录的日期时间,统统设成和参考文件或目录的日期时间相同;

  • -t:<日期时间> 使用指定的日期时间,而非现在的时间;

示例

创建一个已有的文件名并不会破坏原文件内容,只会刷新其时间

[root@CentOS7 td]# ll file 

-rw-r--r--. 1 root root 6 Sep 23 21:23 file

[root@CentOS7 td]# touch file

[root@CentOS7 td]# ll file 

-rw-r--r--. 1 root root 6 Sep 23 21:24 file

[root@CentOS7 td]# cat file 

hello

创建一个空文件的方法

1:touch text.txt

2: cat /dev/null > text.txt

3:> text.txt (并不适应所有场景)

mkdir

  • mkdir用来创建目录;如果在目录名的前面没有加任何路径名,则在当前目录下创建由dirname指定的目录;
  • 如果给出了一个已经存在的路径,将会在该目录下创建一个指定的目录。在创建目录时,应保证新建的目录与它所在目录下的文件没有重名。

选项 :

-Z:设置安全上下文,当使用SELinux时有效;

-m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限;

-p或--parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;

示例

[root@CentOS7 FIRST]# mkdir -p one/two/three

[root@CentOS7 FIRST]# ll

total 0
drwxr-xr-x. 3 root root 17 Sep 24 13:15 one

[root@CentOS7 FIRST]# tree 
.
└── one
    └── two
        └── three
3 directories, 0 files

[root@CentOS7 FIRST]# mkdir -m 700 four

[root@CentOS7 FIRST]# ll 

total 0
drwx------. 2 root root  6 Sep 24 13:16 four
drwxr-xr-x. 3 root root 17 Sep 24 13:15 one

rm

  • rm :可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除掉。对于链接文件,只是删除整个链接文件,而原有文件保持不变。

选项 :

-d:直接把欲删除的目录的硬连接数据删除成0,删除该目录;

-f:强制删除文件或目录;

-i:删除已有文件或目录之前先询问用户;

-r或-R:递归处理,将指定目录下的所有文件与子目录一并处理;

--preserve-root:不对根目录进行递归操作;

-v:显示指令的详细执行过程。

示例

系统默认rm是带有别名的,若要使用原rm可写为\rm

[root@CentOS7 data]# mkdir abc

[root@CentOS7 data]# touch abc/fili{a..c}

[root@CentOS7 data]# ll abc

total 0

-rw-r--r--. 1 root root 0 Sep 24 12:52 filia
-rw-r--r--. 1 root root 0 Sep 24 12:52 filib
-rw-r--r--. 1 root root 0 Sep 24 12:52 filic

[root@CentOS7 data]# rm -r abc/

rm: descend into directory ‘abc/’? y
rm: remove regular empty file ‘abc/filia’? n
rm: remove regular empty file ‘abc/filib’? n
rm: remove regular empty file ‘abc/filic’? n
rm: remove directory ‘abc/’? n

[root@CentOS7 data]# rm -f abc/

rm: cannot remove ‘abc/’: Is a directory

[root@CentOS7 data]# rm -f abc/*

[root@CentOS7 data]# ll abc

total 0

[root@CentOS7 data]# rmdir abc

[root@CentOS7 data]# 

如何正确清除垃圾文件腾出磁盘空间 :

示例 :(清除垃圾文件bigfile)

cat /dev/null > /boot/bigfile

rm -f /boot/bigfile

rm是个危险命令!谨慎操作!


rmdir

  • rmdir :用来删除空目录。当目录不再被使用时,或者磁盘空间已到达使用限定值,就需要删除失去使用价值的目录。利用rmdir命令可以从一个目录中删除一个或多个空的子目录.

选项

-p或--parents:删除指定目录后,若该目录的上层目录已变成空目录,则将其一并删除;

--ignore-fail-on-non-empty:此选项使rmdir命令忽略由于删除非空目录时导致的错误信息;

-v或-verboes:显示命令的详细执行过程;

示例

递归删除父子目录

[root@CentOS1908 data]# mkdir -p ./fi/f2/f3/f4

[root@CentOS1908 data]# tree /data

/data
├── fi
│   └── f2
│       └── f3
│           └── f4
└── script
    └── file.txt

5 directories, 1 file

[root@CentOS1908 data]# rmdir -p fi/f2/f3/f4/

[root@CentOS1908 data]# tree /data

/data
└── script
    └── file.txt

1 directory, 1 file

删除非空目录及其内部所有文件

[root@CentOS1908 data]# echo hello >> script/file.txt 

[root@CentOS1908 data]# rm -rf script

[root@CentOS1908 data]# ll

total 0

file

  • file命令用来探测给定文件的类型。file命令对文件的检查分为文件系统、魔法幻数检查和语言检查3个过程。

选项 :

-b:列出辨识结果时,不显示文件名称;

-c:详细显示指令执行过程,便于排错或分析程序执行的情形;

-f<名称文件>:指定名称文件,其内容有一个或多个文件名称时,让file依序辨识这些文件,格式为每列一个文件名称;

-L:直接显示符号连接所指向的文件类别;

-m<魔法数字文件>:指定魔法数字文件;

-v:显示版本信息;

-z:尝试去解读压缩文件的内容。

示例

[root@CentOS1908 ~]# file -L /etc/passwd

/etc/passwd: ASCII text

[root@CentOS1908 ~]# file -b /etc/passwd

ASCII text

ln

  • ln :命令用来为文件创件连接,连接类型分为硬连接和符号连接两种,默认的连接类型是硬连接。如果要创建符号连接必须使用"-s"选项。

选项 :

-b或--backup:删除,覆盖目标文件之前的备份;

-d或-F或——directory:建立目录的硬连接;

-f或——force:强行建立文件或目录的连接,不论文件或目录是否存在;

-i或——interactive:覆盖既有文件之前先询问用户;

-n或--no-dereference:把符号连接的目的目录视为一般文件;

-s或——symbolic:对源文件建立符号连接,而非硬连接;

-S<字尾备份字符串>或--suffix=<字尾备份字符串>:用"-b"参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,预设的备份字符串是符号“~”,用户可通过“-S”参数来改变它;

-v或——verbose:显示指令执行过程;

-V<备份方式>或--version-control=<备份方式>:用“-b”参数备份目标文件后,备份文件的字尾会被加上一个备份字符串,这个字符串不仅可用“-S”参数变更,当使用“-V”参数<备份方式>指定不同备份方式时,也会产生不同字尾的备份字符串;

示例

创建软链接 :

[root@CentOS1908 data]# ll

total 0
-rw-r--r--. 1 root root 0 Sep 25 20:24 file1
-rw-r--r--. 1 root root 0 Sep 25 20:24 file2
-rw-r--r--. 1 root root 0 Sep 25 20:24 file3

[root@CentOS1908 data]# ln -s /data/file3 /data/file.txt

[root@CentOS1908 data]# ll

total 0
-rw-r--r--. 1 root root  0 Sep 25 20:24 file1
-rw-r--r--. 1 root root  0 Sep 25 20:24 file2
-rw-r--r--. 1 root root  0 Sep 25 20:24 file3
lrwxrwxrwx. 1 root root 11 Sep 25 20:27 file.txt -> /data/file3

创建硬链接

[root@CentOS8 data]# ll

total 0
-rw-r--r--. 1 root root 0 Sep 26 09:01 fi

[root@CentOS8 data]# ln fi fi.txt

[root@CentOS8 data]# ll

total 0
-rw-r--r--. 2 root root 0 Sep 26 09:01 fi
-rw-r--r--. 2 root root 0 Sep 26 09:01 fi.txt

试题

符号链接和硬链接的区别? 答:
符号(或软)链接:
1、一个符号链接指向另一个文件 
2、一个符号链接的内容是它引用文件的名称 
3、可以对目录进行 
4、可以跨分区 
5、指向的是另一个文件的路径;
6、其大小为指向的路径字符串的长度;
7、不增加或减少目标文件inode的引用计数; 
硬链接 :
1、创建硬链接会增加额外的记录项以引用文件 
2、对应于同一文件系统上一个物理文件 
3、每个目录引用相同的inode号 
4、创建时链接数递增 
5、删除文件时:rm命令递减计数的链接文件要存在,至少有一个链接数;当链接数为零时,该文件被删除; 
6、不能跨越驱动器或分区   

mail

  • mail :命令是命令行的电子邮件发送和接收工具.

选项

-b<地址>:指定密件副本的收信人地址;

-c<地址>:指定副本的收信人地址;

-f<邮件文件>:读取指定邮件文件中的邮件;

-i:不显示终端发出的信息;

-I:使用互动模式;

-n:程序使用时,不使用mail.rc文件中的设置;

-N:阅读邮件时,不显示邮件的标题;

-s<邮件主题>:指定邮件的主题;

-u<用户帐号>:读取指定用户的邮件;

-v:执行时,显示详细的信息。

示例 :

直接使用shell当编辑器

mail -s "Hello from linuxde.net by shell" [email protected]
hello,this is the content of mail.
welcome to www.linuxde.net

试题

  • 一个linux用户给root发邮件,要求邮件标题为”help” ,邮件正文如下:

Hello, I am 用户名,The system version is here,please help me to check it ,thanks! 操作系统版本信息

[root@magedu ~]# mail -s help root << EOF 
>Hello, I am `whoami`. 
>The system version is here,please help me to check it,thanks! 
>`cat /etc/redhat-release` 
>EOF 

id

  • id可以显示真实有效的用户ID(UID)和组ID(GID)。UID 是对一个用户的单一身份标识。组ID(GID)则对应多个UID.

选项 :

-g或--group   显示用户所属群组的ID。

-G或--groups   显示用户所属附加群组的ID。

-n或--name    显示用户,所属群组或附加群组的名称。

-r或--real    显示实际ID。

-u或--user    显示用户ID

示例

[root@CentOS7 data]# id -u td
1000
[root@CentOS7 data]# id -g root
0
[root@CentOS7 data]# id td
uid=1000(td) gid=1000(td) groups=1000(td)


ip

  • ip :用来显示或操纵Linux主机的路由、网络设备、策略路由和隧道,是Linux下较新的功能强大的网络配置工具。

选项 :

-V:显示指令版本信息;

-s:输出更详细的信息;

-f:强制使用指定的协议族;

-4:指定使用的网络层协议是IPv4协议;

-6:指定使用的网络层协议是IPv6协议;

-0:输出信息每条记录输出一行,即使内容较多也不换行显示;

-r:显示主机时,不使用IP地址,而使用主机的域名。

示例

[root@CentOS7 data]# ip route list

default via 192.168.30.2 dev ens33 proto dhcp metric 100 
192.168.30.0/24 dev ens33 proto kernel scope link src 192.168.30.134 metric 100 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 

络层协议是IPv6协议;

-0:输出信息每条记录输出一行,即使内容较多也不换行显示;

-r:显示主机时,不使用IP地址,而使用主机的域名。

示例

[root@CentOS7 data]# ip route list

default via 192.168.30.2 dev ens33 proto dhcp metric 100 
192.168.30.0/24 dev ens33 proto kernel scope link src 192.168.30.134 metric 100 
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/dushansao/article/details/101672598