Operation and maintenance
  • 目录
  • linux 历史
    • Linux网卡配置
    • linux互相登陆
  • 文件目录管理
    • linux目录结构
    • 文件的基本信息
    • linux别名alias
    • 环境变量
    • linux终端相关快捷键
    • linux文件和目录添加删除
    • linux文件查看命令
    • linux文件目录权限
    • linux文件特殊权限
    • 链接文件
    • linux下文件查找
    • linux和window文件互传
    • linux文件压缩和打包
    • vim工具集
  • 用户和组管理
    • 用户组和用户管理
    • 修改组和用户
    • 用户切换
    • 禁止root远程登陆
  • linux磁盘管理
    • 磁盘分区
    • 格式化磁盘
    • 分区挂载
    • 手动添加swap分区
    • lvm基础
  • linux软件安装和卸载
    • rpm工具
    • yum工具
    • 源码安装包
  • 日常运维
    • 监控磁盘IO
    • 查看网络状态
    • linux抓包
    • linux网络相关
    • Linux防火墙-netfilter
    • linux任务计划
    • linux系统服务管理
    • linux同步工具rsync
    • linux系统日志和screen
  • LAMP架构
    • 安装mysql
    • 免编译安装mariadb
    • 安装apache
    • 安装php5
    • 安装php7
    • apache 配置虚拟主机
    • apache 用户认证
    • apache 域名跳转
    • apache 访问日志
    • apache 不记录文件日志
    • apache 配置静态元素过期时间
    • apache 配置防盗链
    • apache 访问控制
    • apache 禁止解析php文件
    • apache 禁止user_agent
    • php 配置文件
    • php 动态扩展模块安装
  • LNMP架构
    • 安装mariadb
    • 安装php
    • 安装nginx
    • nginx 默认虚拟主机
    • nginx 用户认证
    • nginx 域名重定向
    • nginx 访问日志
    • nginx 日志切割
    • nginx不记录指定文件类型日志
    • nginx 静态文件和过期时间
    • nginx 防盗链
    • nginx 访问控制
    • nginx 解析php
    • nginx 代理
    • nginx 负载均衡
    • nginx 支持https
  • MySQL集合
    • 更改root密码
    • mysql 常用操作
    • mysql 常用sql
    • mysql 数据备份
    • mysql 主从配置
  • linux常用服务
    • nfs 服务搭建
    • CentOS7 搭建snmp服务
    • ftp 服务搭建
    • samba 服务搭建
    • Squid 服务搭建
    • Tomcat 服务搭建
    • resin 搭建
    • dns 服务搭建
    • iscsi 服务搭建
  • linux开发语言环境
    • python 开发环境
    • golang 开发环境
  • linux集群架构
    • linux 高可用
    • linux 负载均衡
  • linux监控平台
    • zabbix 监控平台(上)
  • shell集合
  • NoSql
    • memcached (上)
    • memcached(下)
    • redis(上)
    • redis(中)
    • redis(下)
    • mongodb(上)
    • mongodb(中)
    • mongodb(下)
  • 代码管理工具
    • 代码管理工具 svn
    • 代码管理工具 git
    • 搭建git私有仓库
    • 安装配置gitlab
  • docker 入门
    • docker 安装
    • docker 镜像管理
    • docker 容器管理
    • docker 仓库管理
    • docker 共享目录
    • docker 数据备份和恢复
    • docker 网络管理
    • docker 使用dockerfile
    • docker compose
  • 自动化运维
    • saltstack 安装
    • saltstack 配置认证
    • saltstack 远程执行命令
    • saltstack grains
    • saltstack pillar
    • saltstack 实战:安装配置httpd
    • saltstack 实战:配置管理文件
    • saltstack 实战:配置管理远程命令
    • saltstack 实战:配置管理任务计划
    • saltstack salt-ssh工具
    • ansible 安装
    • ansible 远程命令
    • ansible 远程目录拷贝
    • ansible 任务计划
    • ansible 远程rpm/服务管理
    • ansible playbook 详解
    • ansible playbook 实战:安装nginx
  • linux虚拟化
    • KVM介绍
    • 安装KVM
    • 虚拟机管理
    • 克隆虚拟机
    • 快照管理
    • 磁盘扩容
    • 调整虚拟机配置
    • 迁移虚拟机
  • 错误排查
    • linux启动挂在不上sysroot问题
由 GitBook 提供支持
在本页
  • which 命令
  • whereis 命令
  • locate 命令
  • find 命令
  • stat 命令

这有帮助吗?

  1. 文件目录管理

linux下文件查找

which 命令

which 命令:

介绍:搜索文件路径(PATH中定义且有权限)

格式:which command

用法:

  • which ls :查看ls命令的文件

[root@localhost ~]# which ls
alias ls='ls --color=auto'
        /usr/bin/ls
[root@localhost ~]# which tree
/usr/bin/tree
[root@localhost ~]#

whereis 命令

whereis 命令:

介绍:查看文件路径和相关包,实际是内部有定时搜索

格式:whereis command

用法:

  • whereis ls

[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
[root@localhost ~]# whereis tree
tree: /usr/bin/tree /usr/share/man/man1/tree.1.gz

locate 命令

locate 命令:

介绍: 不精切的查找,包含字符就满足(/tmp下除外)需要yum install -y mlocate 安装对应的软件包,使用updatedb 命令更新内部数据库后才能查找

格式:locate option

用法:

  • locate 1.txt

[root@localhost ~]# locate 1.txt
/etc/pki/nssdb/pkcs11.txt
/usr/share/man/man5/pkcs11.txt.5.gz
/usr/share/vim/vim74/doc/gui_x11.txt.gz
/usr/share/vim/vim74/doc/usr_01.txt.gz
/usr/share/vim/vim74/doc/usr_11.txt.gz
/usr/share/vim/vim74/doc/usr_21.txt.gz
/usr/share/vim/vim74/doc/usr_31.txt.gz
/usr/share/vim/vim74/doc/usr_41.txt.gz

只要路径中符合查找的字段的后会输出

find 命令

find 命令(重要):

介绍:查找文件

格式:find path [option] string

用法:

  • find /dir/ -name 'filename'|'filename*(通配符)' :下指定目录下按名查找

  • find /dir/ -tpye d|s|l|p|f :按文件类型查找

  • find /dir/ -mtime [-|+]days : 按天查找(+为变更天数以前,-为多少天以内,以目前时间为参考点)

  • find /dir/ -mmin [-|+]min : 按分钟找

  • find /dir/ -inum num : 按inode查找

  • find /dir/ -name -tpye : 复合条件查找

  • find /dir/ -perm num : 权限查找

  • find /dir/ -maxdepth 1 : 只限当前目录(不包括子目录)

  • find /dir/ -size [-|+]10[k|M|G] : 按大小查找

  • -o : 逻辑或 `find /dir/ -name 'filename'|'filename*(通配符)'

  • -a : 逻辑与

find . -type f -perm 600     : 查找当前目录下600权限的所有文件
find . -type f -perm 600 -o -perm 644:查找当前目录下600或644权限的所有文件
find . -type f -perm 600 -a -mtime -2 :查找当前目录下600权限的两天前的文件
find /etc/ -type f ! -mtime -365 : 找出 /etc/ 目录下,一年内从未变更过的文件
find . -type d -perm 600 |xargs -i mv {} {}.bak  : 查找当前目录下600权限的目录并输出给mv {}匹配所有输出的文件
find . -type d -perm 600 |xargs rm -r  : 查找当前目录下600权限的目录并删除
find . -name "*.txt" -exec mv {} {}.bak \;  :查看当前目录下带txt的文件并修改(注意结尾的\;)

find 命令中用到按时间查找,linux文件有三个类型时间,用stat命令查看

stat 命令

stat 命令

介绍:查看文件详细信息

格式:stat file

用法:

  • stat 1.txt

[root@localhost ~]# stat 1.txt.bak 
  File: '1.txt.bak'
  Size: 4               Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d      Inode: 67162872    Links: 1
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-08-01 22:17:14.280451353 +0800
Modify: 2018-08-01 22:17:36.964735995 +0800
Change: 2018-08-01 22:48:16.970764413 +0800
 Birth: -

文件的 Access time,atime 是在读取文件或者执行文件时更改的。

文件的 Modified time,mtime 是在写入文件时随文件内容的更改而更改的。

文件的 Change time,ctime 是在写入文件、更改所有者、权限或链接设置时随 Inode 的内容

更改而更改的。因此,更改文件的内容即会更改 mtime 和 ctime,但是文件的 ctime 可能会

在 mtime 未发生任何变化时更改,如权限更改了但文件内容没有更改。

如何获得一个文件的atime mtime 以及ctime?

ls(1) 命令可用来列出文件的 atime、ctime 和 mtime。

# ls -lc filename         列出文件的 ctime
# ls -lu filename         列出文件的 atime
# ls -l filename          列出文件的 mtime
[root@localhost ~]# ls -lu 1.txt.bak 
-rwxr-xr-x 1 root root 4 Aug  1 22:17 1.txt.bak
[root@localhost ~]# ls -lc 1.txt.bak 
-rwxr-xr-x 1 root root 4 Aug  1 22:48 1.txt.bak
[root@localhost ~]# ls -l 1.txt.bak 
-rwxr-xr-x 1 root root 4 Aug  1 22:17 1.txt.bak
[root@localhost ~]#

atime不一定在访问文件之后被修改,因为:使用ext3文件系统的时候,如果在mount的时候使用 了noatime参数那么就不会更新atime的信息。而这是加了 noatime 取消了, 不代表真实情況。 反正, 这三个 time stamp 都放在 inode 中. 若 mtime, atime 修改, inode 就一定會改, 既然 inode 改了, 那 ctime 也就跟著要改了(理论上是这样的,但是真实情况并非如此,如果 是读取文档或者执行二进制文件的时候,虽然atime会变,但ctime不变,这是系统这样设计的).

上一页链接文件下一页linux和window文件互传

最后更新于4年前

这有帮助吗?