Shell中的文件管理

ls finddu 是 Linux 和 Unix 系统中非常常用的命令,用于列出文件信息和查看磁盘使用情况。下面是命令的一些常见用法,包括排序、筛选、查看大小、创建时间和修改时间等。

ls 命令的常见用法

  1. 基本列表

    • ls: 列出当前目录中的文件和目录。
    • ls -a: 列出所有文件,包括隐藏文件(以.开始的文件)。
  2. 长格式显示

    • ls -l: 以长格式显示文件详细信息,包括权限、所有者、大小和最后修改时间。
  3. 根据修改时间排序

    • ls -lt: 按最后修改时间降序排列(最新的文件先显示)。
    • ls -ltr: 按最后修改时间升序排列(最旧的文件先显示)。
  4. 显示文件大小

    • ls -lh: 显示文件大小,以易读的格式(例如 KB、MB)。
  5. 递归列表

    • ls -R: 递归地列出所有子目录的内容。
  6. 根据文件大小排序

    • ls -lS: 按文件大小排序。
  7. 显示文件的创建时间(在支持的系统上):

    • ls --time=creation -l: 显示文件的创建时间。

du 命令的常见用法

  1. 查看目录大小

    • du: 显示当前目录的磁盘使用情况。
    • du -h: 以人类可读的格式显示大小(例如 KB、MB)。
  2. 显示指定目录的大小

    • du [路径]: 显示指定路径的磁盘使用情况。
  3. 递归显示每个子目录的大小

    • du -h --max-depth=1: 在当前目录中,递归显示每个子目录的大小。
  4. 按大小排序

    • du -h | sort -h: 按大小排序显示目录的磁盘使用情况。
  5. 查看文件的大小

    • du -h [文件名]: 显示特定文件的大小。
  6. 总计目录大小

    • du -sh: 显示当前目录总计的大小。

find 命令是在 Linux 和 Unix 系统中用于基于各种条件搜索文件的强大工具。以下是 find 命令的一些常见用法:

基本搜索find

  1. 在目录中查找文件

    • find [路径] -name [文件名]: 在指定路径下查找名为 [文件名] 的文件。例如,find /home -name "example*.txt“。
  2. 忽略大小写的搜索

    • find [路径] -iname [文件名]: 类似于 -name,但忽略大小写。

根据文件类型搜索

  1. 只查找目录或文件
    • find [路径] -type d: 只查找目录。
    • find [路径] -type f: 只查找普通文件。

根据文件大小搜索

  1. 查找特定大小的文件
    • find [路径] -size [大小]: 查找特定大小的文件。大小后缀可以是 c(字节)、k(千字节)、M(兆字节)等。例如,find / -size +2M 查找大于2MB的文件。

根据时间戳搜索

  1. 按修改时间查找文件

    • find [路径] -mtime [天数]: 查找在指定天数内被修改过的文件。例如,find /home -mtime -7 查找过去7天内修改过的文件。
  2. 按访问时间查找文件

    • find [路径] -atime [天数]: 查找在指定天数内被访问过的文件。
  3. 按更改时间查找文件

    • find [路径] -ctime [天数]: 查找在指定天数内更改过的文件。

基于权限和所有权搜索

  1. 按权限查找文件

    • find [路径] -perm [权限]: 查找具有特定权限的文件。例如,find / -perm 644
  2. 按所有者查找文件

    • find [路径] -user [用户名]: 查找属于特定用户的文件。

执行操作

  1. 查找并执行命令
    • find [路径] -name [文件名] -exec [命令] {} \;: 查找特定文件并对其执行指定命令。例如,find /home -type f -name "*.tmp" -exec rm {} \; 会找到所有 .tmp 文件并删除它们。

组合条件

  1. 使用逻辑运算符
    • find [路径] \( -条件1 -o -条件2 \): 使用逻辑运算符(如 -and, -or, -not)组合多个条件。例如,find /home \( -name "*.txt" -or -name "*.pdf" \) 会查找所有的 .txt.pdf 文件。