Linux文件管理之一

简介: ls 命令用于显示指定工作目录中所包含的文件,该命令的使用方法如下:ls [选项] [文件目录列表]ls 命令中的常用选项


01

显示文件(ls、stat和file)

ls

ls 命令用于显示指定工作目录中所包含的文件,该命令的使用方法如下:ls [选项] [文件目录列表]

ls 命令中的常用选项:

选项 说明
-a 列出目录下的所有文件,包括以“.”开头的隐含文件。
-d 将目录像文件一样显示,而不是显示其下的文件
-h 以人类可识别的方式输出文件大小
-k 以 k 字节的形式表示文件的大小
-l 列出文件的详细信息
-m 横向输出文件名,并以“,”作为分隔符,便于定向到shell命令进行处理
-n 用数字的 UID,GID 代替名称
-r 录反向排序
-t 以时间排序
-R 递归的列出所有子目录下的文件
-S 以文件大小排序

常用ll代替alias ll='ls -l --color=auto'

查询最新的10个文件 $ ls -lrt|tail

查询最大的10个文件 $ ls -lS|head

查询目录,不显示下面的文件$ ls -ld pictures/

文件类型的字符表示文件的权限,权限由三个字符串组成,这三个字符串分别表示:该文件所有者的权限、组中其他人的权限和系统中其他人的权限;每个字符串又由三个字符组成,依次表示对文件的读(用字符r表示)、写(用字符W表示)和执行权限(用字符x表示)。当用户没有相应的权限时,该权限的对应位置用短线“-”来表示。

例如drwxr-x---表示的含义是:

  • d 表示该文件是目录;
  • 目录拥有者的权限是rwx(表示有读、写和执行权限);
  • 组中其他人对该目录的权限是r-x(表示有读和执行权限,没有写权限);
  • 系统中其他人对该目录的权限是-(表示读、写和执行权限都没有)。

stat

在 Linux 中,文件有访问时间、数据修改时间、状态修改时间这三个时间,而没有创建时间。stat 是査看文件详细信息的命令,而且可以看到文件的这三个时间。



oracle@yaoyuan ~$ touch aoracle@yaoyuan ~$ stat a  File: ‘a’  Size: 0           Blocks: 0          IO Block: 4096   regular empty fileDevice: fc02h/64514d  Inode: 17253       Links: 1Access: (0644/-rw-r--r--)  Uid: (54321/  oracle)   Gid: (54321/oinstall)Context: unconfined_u:object_r:user_home_t:s0Access: 2022-07-28 15:29:33.893889798 +0800Modify: 2022-07-28 15:29:33.893889798 +0800Change: 2022-07-28 15:29:33.893889798 +0800 Birth: -oracle@yaoyuan ~$ cat aoracle@yaoyuan ~$ stat a  File: ‘a’  Size: 0           Blocks: 0          IO Block: 4096   regular empty fileDevice: fc02h/64514d  Inode: 17253       Links: 1Access: (0644/-rw-r--r--)  Uid: (54321/  oracle)   Gid: (54321/oinstall)Context: unconfined_u:object_r:user_home_t:s0Access: 2022-07-28 15:29:45.396888989 +0800Modify: 2022-07-28 15:29:33.893889798 +0800Change: 2022-07-28 15:29:33.893889798 +0800 Birth: -

可以看到access的时间变了,其它的时间都没有变。

file

file查看文件的类型



oracle@yaoyuan ~$ file /var/log/mysqld.log /var/log/mysqld.log: regular file, no read permissionoracle@yaoyuan ~$ file aa: emptyoracle@yaoyuan ~$ file /bin/ls/bin/ls: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=aaf05615b6c91d3cbb076af81aeff531c5d7dfd9, stripped


02

查找文件(find)


find 命令的基本结构如下:find [paths] [expression] [actions]

find 命令中的 -name 选项可以根据文件名称进行检索(区分大小写)。如需要忽略文件名中的大小写,可以使用 -iname 选项,i应该是ignore的意思。

  • ? 可以表示任意一个单一的符号
  • * 可以表示任意数量(包括 0)的未知符号
    删除/tmp目录下的以 .txt 结尾的文件
$ mkdir -p /tmp/dir1/dir2
$ touch /tmp/dir1/dir2/aa.txt
$ find /tmp -name '*.txt'
$ find /tmp -name '*.txt' -delete

使用 -type 选项指定文件类型。-type 选项最常用的参数如下:

  • f: 文件
  • d: 目录
  • l: 符号链接

find /usr -type d -name 'python*' 检索 /usr 下所有文件名以 python 开头的目录

根据时间日期进行检索

有些时候,需要根据文件创建或修改的时间进行检索。Linux 系统中,与文件相关联的时间参数有以下三种:

  • 修改时间(Modification time):最后一次文件内容有过更改的时间点
  • 访问时间(Access time):最后一次文件有被读取过的时间点
  • 变更时间(Change time):最后一次文件有被变更过的时间点(如内容被修改,或权限等 metadata 被修改)

与此对应的是 find 命令中的 -mtime-atime-ctime 三个选项。

这三个选项的使用遵循以下示例中的规则:

  • -mtime 2:该文件 2 天前被修改过
  • -mtime -2:该文件 2 天以内被修改过
  • -mtime +2:该文件距离上次修改已经超过 2 天时间

find /u01 -type f -mtime 2 检索 /u01 下两天前被修改过的文件

如果觉得 -mtime 等选项以天为单位时间有点长,还可以使用 -mmin,-amin,-cmin 三个选项:find /usr -type f -mtime +50 -mtime -100 检索 /usr 下 50 到 100 天之间修改过的文件 find /usr -type f -mtime 2 -amin 5 检索 /usr 下两天前被修改过且 5 分钟前又读取过的文件

find /u01/app/oracle/diag/rdbms -mmin -10 -type f   10分钟内被修改过的Oracle跟踪文件。

find /u01/app/oracle/diag/rdbms -mmin -10 -type f  -delete  删除这些文件

find . -atime +30 -exec rm -rf {} ;   删除30天没有访问的文件

根据文件大小检索

-size 选项允许用户通过文件大小进行搜索(只适用于文件,目录没有大小……)。

表示文件大小的单位由以下字符组成:

  • c:字节
  • k:Kb
  • M:Mb
  • G:Gb

另外,还可以使用 +- 符号表示大于小于当前条件。find /u01 -size +1G 检索文件大小高于 1 GB 的文件。加上-delete可以删除大文件,常用与硬盘空间满时候。

相关文章
|
7月前
|
存储 Shell Linux
【Shell 命令集合 文件管理】Linux 读取命令 read命令使用指南
【Shell 命令集合 文件管理】Linux 读取命令 read命令使用指南
94 0
|
7月前
|
监控 网络协议 Shell
【Shell 命令集合 文件管理】Linux 远程文件复制命令 rcp 命令使用教程
【Shell 命令集合 文件管理】Linux 远程文件复制命令 rcp 命令使用教程
89 0
|
7月前
|
Shell Linux C语言
【Shell 命令集合 文件管理】Linux 删除 rm命令使用指南
【Shell 命令集合 文件管理】Linux 删除 rm命令使用指南
155 0
|
7月前
|
安全 Shell Linux
【Shell 命令集合 文件管理】Linux ssh 远程主机之间复制文件 scp 命令使用教程
【Shell 命令集合 文件管理】Linux ssh 远程主机之间复制文件 scp 命令使用教程
213 0
|
7月前
|
存储 Shell Linux
【Shell 命令集合 文件管理】Linux 快速定位文件和目录 slocate命令使用教程
【Shell 命令集合 文件管理】Linux 快速定位文件和目录 slocate命令使用教程
75 0
|
2月前
|
存储 安全 Linux
Linux文件管理命令md5sum awk
通过结合 `md5sum`和 `awk`,不仅可以高效地进行文件完整性校验,还能灵活地处理和分析校验结果,为系统管理、数据审计等工作提供强大的支持。
69 2
|
2月前
|
存储 Linux
Linux文件管理(超详细讲解)
Linux文件管理(超详细讲解)
175 5
|
4月前
|
存储 Linux Shell
Linux 导航和文件管理
Linux 导航和文件管理
23 0
|
6月前
|
Linux C++
Linux文件管理命令(一)
这是关于Linux命令行的一些内容,主要包括了一些常见的Linux命令及其参数的用法。例如,`ls` 命令用于列出目录内容,不同的参数如 `-a` 显示所有文件(包括隐藏文件),`-l` 以详细模式显示,`-S` 按大小排序等。`mkdir` 命令用于创建目录,`cp` 命令用于复制文件或目录,`mv` 命令用于移动或重命名文件或目录,而`rm` 命令则用于删除文件或目录。在使用这些命令时,可以结合不同的参数来实现不同的操作。
|
6月前
|
Linux Windows
Linux文件管理命令(二)
`Linux`文件管理涉及`ls`显示目录内容,`cd`切换目录,`pwd`显示当前目录,`whoami`显示当前用户,`hostname`显示主机名,目录使用正斜杠 `/` 分隔,根目录始于第一个 `/`。`man`命令用于获取命令帮助,如`man ls`,也可用`--help`参数,如`ls --help`。常用快捷键包括`Ctrl+C`取消操作,`Ctrl+L`清屏,`Ctrl+D`退出用户,`Ctrl+A`移动光标到行首,`Ctrl+E`移动到行尾。查看`PATH`环境变量用`echo $PATH`。