find命令

find命令主要用来搜索文件

±符号里 -表示数值内,相当于小于;+表示数值外,相当于大于;
find涉及格式如下:

  • -name "文件名"
  • -type [文件格式]
  • -size [±符号][文件大小]
  • -ctime [±符号][数值]
  • -mtime [±符号][数值]
  • -atime [±符号][数值]
  • -mmin [±符号][数值]
  • -inum [数值]
  • -maxdepth 1 只查询当前目录下的子目录和文件,不查询子目录下的子目录或文件

    -name

    搜索普通文件
    find 路径 -name "文件名
    "
    实验1:在/目录下搜索一个1.txt的文件;

    [root@jinkai01 ~]# find / -name 1.txt
    /etc/1.txt
    /root/1.txt
    /tmp/1.txt
    /1.txt

实验2:在/目录下搜索一个名字不全的文件;

[root@jinkai01 ~]# find / -name *.txt
/etc/1.txt
/root/1.txt
/tmp/1.txt
/1.txt

-type

指定搜索文件类型
搜索目录(d)

实验1:在/目录下搜索一个名字为a的目录

find / -type d -name "a"
[root@jinkai01 ~]# find / -type d -name a
/etc/a
/root/a
/var/lib/yum/yumdb/a
/tmp/a
/usr/share/terminfo/a
/a

搜索文件(f)
实验2:在/目录下搜索一个名字为1.txt的文件

find / -type f -name "1.txt"
[root@jinkai01 ~]# find / -type f -name 1.txt
/etc/1.txt
/root/1.txt
/tmp/1.txt
/1.txt

根据文件的类型去搜索;
type参数
d :目录
f(-):普通文件 
l:软链接文件

根据时间搜索参数
-mtime 时间:创建时间、最近更改:修改文件内容,不修改内容保存退出也会有记录
-ctime 时间:最近改动,比如修改权限,改名称,移动位置,修改文件内容,不修改内容保存退出也有记录
-atime 时间:最近访问(使用vi、cat等)

stat命令

查询文件最近访问时间、最近更改时间、最近更改时间、创建时间;

[root@jinkai01 ~]# stat /etc/2.txt
File: '/etc/2.txt'
Size: 15 Blocks: 8 IO Block: 4096 regular file
Device: fd00h/64768d Inode: 33574988 Links: 1
Access: (0777/-rwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:admin_home_t:s0
Access: 2020-08-04 15:57:08.426018838 +0800
Modify: 2020-08-04 15:57:12.527018990 +0800
Change: 2020-08-04 15:57:12.531018990 +0800
Birth: -

-ctime
根据“改动时间”来查找
查找/下面ctime也就是“最近改动”范围在一天以内的文件;

find / -type f -ctime -1

-atime
查找/下面atime也就是“最近访问”范围在1天以上的文件;

find / -type f -atime +1

-mtime
查找/下面mtime也就是“最近更改时间”范围在38天以上的文件;

find / -type f -mtime +38

查找/tmp/目录下创建时间小于120分钟的文件 以ls-l的方式列出来

[root@jinkai01 ~]# find /tmp/ -type f -mmin -120 -exec ls -l {} \;
-rw-r--r--. 1 root root 0 Aug 4 15:49 /tmp/1.txt

查找/tmp/目录下创建时间小于120分钟的文件,改名为..bak

[root@jinkai01 ~]# find /tmp/ -type f -mmin -120 -exec mv {} {}.bak \;
[root@jinkai01 ~]# find /tmp/ -type f -mmin -120 -exec ls -l {} \;
-rw-r--r--. 1 root root 0 Aug 4 15:49 /tmp/1.txt.bak

-inum
根据inum号查询文件(硬链接)
find 路径 -inum 数值
find / -inum 50784099

[root@jinkai01 ~]# ls -i
50784099 a 33574978 anaconda-ks.cfg
[root@jinkai01 ~]# find / -inum 50784099
/root/a

-size
根据文件大小查找
查找目录下小于10k的文件,将其ls -lh表示出来

[root@jinkai01 ~]# find /tmp/ -type f -size -10k -exec ls -lh {} \;
-rw-r--r--. 1 root root 0 Aug 4 15:49 /tmp/1.txt.bak

文件后缀名

文件后缀名:Linux下午后缀名需求,只是为了好区分文件类型;
例如1.txt文件也可以写成1,一样也被系统识别;
加后缀名只是便于我们自己区分;
比如一说到txt我们就知道是文本,bak是备份、rar是压缩等;

linux和Windows互传文件

使用xshell与Linux之间互传必须安装包:lrzsz

yum install -y lrzsz

将Linux上的文件传输到Windows电脑上:
格式:
sz [文件路径]
sz /tmp/1.txt.bak

在弹出的保存对话框中手动选择保存的Windows目录即可;
find命令使用和lrzsz文件互传_第1张图片
将Windows文件传输到Linux服务器上:
rz命令
输入rz命令,在弹出的对话框中选择Windows的文件,点击确定即可;
注意:传输过来的文件是传输到当前目录下;
find命令使用和lrzsz文件互传_第2张图片