linux基础命令(二)

目录

du

创建空文件touch

软链接硬链接ln

硬链接:

软链接:

小节:

复制文件或者目录cp

删除文件或者目录rm

剪切文件粘贴或目录/改名mv

查找命令/文件存放目录which

查找文件或者目录find

find -name参数案例

find工具 -size参数案例

find工具 -type参数案例

查找存在的用户文件

find通配符使用

管道 |

 扩展

生产案例


du

du命令是对文件和目录磁盘使用的空间的查看.

语法:

du [-ahskm] 文件或目录名称

选项与参数:

-a :列出所有的文件与目录容量,因为默认仅统计目录底下的文件量而已。

-h :以人们较易读的容量格式 (G/M) 显示;

-s :列出总量而已,而不列出每个各别的目录占用容量;

-S :不包括子目录下的总计,与 -s 有点差别。

-k :以 KBytes 列出容量显示;

-m :以 MBytes 列出容量显示;

du -sh * 生产环境常这样搭配使用统计当前目录下所以我将的大小显示出来,常用于磁盘水位过高的情况。

创建空文件touch

touch +选项 +参数

touch用法

创建两个文件夹,aa,bb

 

软链接硬链接ln

 

ln命令用于为文件或目录建立链接文件,提高用户定位文件或定位目录的效率,链接文件包括软链接和硬链接两种类型,其中软链接又称为符合链接,无论是访问软链接还是硬链接,与直接访问原始文件的效果基本相同

ln -s 创建软链接,相当于创建一个快捷方式

ln 创建硬链接,相当于复制了一份副本

软链接建立时原始文件可以不存在

如果删除源文件之后又重新建立源文件,那么软链接照样可以用

软链接文件的大小就是软链接文件本身的文件名字符长度!

可以给目录做软链接,为了防止目录被删

硬软区别

硬链接不能跨分区建立连接 无法对文件夹创建

删除硬件连接可以继续访问硬链接

软连接可以跨设备 可以支持文件夹

软连接删除源文件不能访问

硬链接:

一般情况下,文件名和inode号码是"一一对应"关系,每个inode号码对应一个文件名。但是,Unix/Linux系统允许,多个文件名指向同一个inode号码。这意味着,可以用不同的文件名访问同样的内容;对文件内容进行修改,会影响到所有文件名;但是,删除一个文件名,不影响另一个文件名的访问。这种情况就被称为"硬链接"(hard link)

软链接:

除了硬链接以外,还有一种特殊情况。文件A和文件B的inode号码虽然不一样,但是文件A的内容是文件B的路径。读取文件A时,系统会自动将访问者导向文件B。因此,无论打开哪一个文件,最终读取的都是文件B。这时,文件A就称为文件B的"软链接"(soft link)或者"符号链接(symbolic link)。这意味着,文件A依赖于文件B而存在,如果删除了文件B,打开文件A就会报错:"No such file or directory"。这是软链接与硬链接最大的不同:文件A指向文件B的文件名,而不是文件B的inode号码,文件B的inode"链接数"不会因此发生变化。

小节:

1、软链接和硬链接指向方向不一样 软(指向源文件,不需要占用磁盘空间) 硬(指向数据块,需单独占用空间)

2、读取方式 软(指向源文件) 硬(指向数据块)

3、创建对象 软(可以指向目录和文件) 硬 (不能指向目录)

4、 软链接可跨区域 硬链接不行

inode值:是文件的一个位置标识(唯一性)用于系统 用于给系统识别定位

复制文件或者目录cp

拷贝文件:cp

cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。

常用选项说明:

cp常用选项

-f:强制复制,不与用户交互
-i:提醒覆盖
-p:连属性一起复制
-r:复制目录时必须使用此选项,表示递归复制所有文件及子目录。
-a:保留权限,复制软链接本身,递归复制
注:复制多个文件或目录时,目标位置必须是目录,且目标目录必须已存在。

cp的高级用法:cp -v file1.txt{,.bak}常用于备份
 

删除文件或者目录rm

-i:删除文件或目录时提醒用户确认

-r:删除目录时必须使用此选项,表示递归删除整个目录树(应谨慎使用)。

-f:删除文件或目录时不进行提醒,而直接强制删除

常见用法:rm -rf /*

删除空目录:rmdir

剪切文件粘贴或目录/改名mv

用法“mv+文件名+目录名

mv命令用来移动文件或目录,也可以给文件或目录重命名。

常用选项说明:

选项

含义

-f

禁止交互式操作,如有覆盖也不会给出提示

-i

确认交互方式操作,如果mv操作将导致对已存在的目标文件的覆盖,系统会询问是否重写,要求用户回答以避免误覆盖文件

-v

显示移动进度

查找命令/文件存放目录which

which 命令用于查找 Linux 命令程序并显示所在的具体位置,其搜索范围主要由用户的环境变量 PATH 决定(可以执行“echo $PATH”命令查看),这个范围也是 Linux 操作系统在执行命令或程序时的默认搜索路径。

 

查找文件或者目录find

采用递归方式2,根据目标的名称、类型、大小等不同属性进行精细查找

不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示

-name 按名称查找:

-size 按大小查找:

-user 按文件属主:

-type 按类型查找:普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)、链接(l)

块设备指的是成块读取数据的设备(如硬盘、内存等),而字符设备指的是按单个字符读取数据的设备(如键盘、鼠标等)

-mtime +30按时间查找

find -name参数案例

find /etc -name "resol*.conf"

find /data/ -name "*.txt" #查找/data/目录以.txt结尾的文件;

find /data/ -name "[A-Z]*" #查找/data/目录以大写字母开头的文件;

find /data/ -name "test*" #查找/data/目录以test开头的文件;

find工具 -size参数案例

find /data/ -size +1M #查文件大小大于1Mb的文件;

find /data/ -size 4M #查文件大小为10M的文件;

find /data/ -size -1M #查文件大小小于1Mb的文件;

-size +4M 表示4M 以上 不包括 4M

-size 4M 表示3M 到4M 且不包括3M

-size -4M 表示3M 以内 包括3M

1G 1024 代表1023M - 1024M 不包括1023M

find工具 -type参数案例

find /boot -type d

find /data/ -type d #查找/data/目录下的文件夹;

find /data/ ! -type d #查找/data/目录下的非文件夹;

find /data/ -type l #查找/data/目录下的链接文件。

find /data/ -type d|xargs chmod 755 -R #查目录类型并将权限设置为755;

find /data/ -type f|xargs chmod 644 -R #查文件类型并将权限设置为644;

查找存在的用户文件

find /home -user 用户名

find /home -user 用户名 -group 组名

find通配符使用

设置 find 命令的查找条件时,若需要使用“*”或“?”通配符,最好将文件名用双引号括起 来,以避免当前目录下符合条件的文件干扰查找结果

find /boot -size +1024k -a/-o -name "vmlinuz*"

使用“-a”“-o”组合两个条件,前者表示两个条件必须同时满足, 后者表示只需满足其中任何一个条件即可

管道 |

管道:一个命令的输出可以通过管道做为另一个命令的输入。

“ | ”的左右分为两端,从左端写入到右端。

 扩展

   xargs

可以和管道配合
find ./ -maxdepth 1 -type f -print0 | xargs -0 ls -lh
-atime  -- 访问时间
Linux中日志放在/var/log sylog
        
-mtime  -- 文件内容修改时间
    
-ctime  -- 文件属性修改时间    
ctime   ##以天为单位
cmin    ##以分钟为单位    
find ./ -name "syslog.*.gz" -mtime -5 -exec ls -lh {} \;     # +5是五天以前      #-5天以内 

在当前目录下(包含子目录),删除所有txt文件 
find ./ -name "*.txt" -exec rm {} \; 

在当前目录下(包含子目录),查找所有txt文件并找出含有字符串"bin"的行 
find ./ -name "*.txt" -exec grep "bin" {} \; 

多条件查找
-a:并且
-o:或者

[root@localhost ~]# find /mnt -user root -a -size +5m


[root@localhost ~]# find /mnt -user root -o -size +5m

-not表示非;即反向选择
[root@localhost ~]# find /mnt -not -user root

按权限查找:-perm
[root@localhost ~]# find /bin/ -perm 755 # 等于 0755 权限的文件或目录
[root@localhost  ~]# find /bin/ -perm -644 #-perm -644 至少有 644 权限的文件或目录
 

生产案例

find /backup/ -type f -name "*.log" -exec rm {} \;  #删除日志文件
find /backup/ -type f -name "*.dmp" -exec rm {} \;
#删除备份文件
find /backup/ -type f -name "*.tar.gz" -mtime +5 -exec rm -rf {} \; #删除5天前的备份(注意:{}  \中间有空格)

找到/opt目录下,以.log为结尾的文件(多个),批量备份(cp)到/mnt下

find /opt/ -name "*.log" | xargs -i cp {} /mnt/

找到opt/目录下,以大写字母为开头且创建时间在十分钟之内的目录,进行批量备份到/mnt下

find /opt/ -type -d -name "[A-Z]" -cmin -10  | xargs -i cp -R {} /mnt/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AKA|布鲁克林欧神仙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值