Linux- 文件夹相关的常用指令

1. 统计文件夹下的文件数量

在 Linux 下,有几种方法可以统计文件夹下的文件数量:

  1. 使用 lswc 命令: 这种方式可以统计目录下的直接子文件(不包括子目录里的文件)。

    ls -l <目录路径> | wc -l
    

    注意:这将也统计目录自身,所以实际文件数量可能需要减1。

  2. 使用 find 命令: 如果你希望递归地统计目录及其所有子目录中的文件数量,你可以使用以下命令:

    find <目录路径> -type f | wc -l
    

    这里,-type f 表示只查找文件(不包括目录)。

  3. 使用 tree 命令: tree 是一个递归地列出目录和文件的命令,它也在输出的最后给出了文件和目录的数量。如果 tree 命令没有安装,你可以使用包管理器(如 apt, yumbrew)来安装它。

    tree <目录路径> 
    

    输出的最后几行会显示文件和目录的数量。

选择适合你需求的方法即可。请将 <目录路径> 替换为想要统计文件数量的实际目录路径。

2. 统计文件夹下指定文件格式的文件数量

在 Linux 下,你可以使用 find 命令配合 wc 命令来统计目录下特定格式(比如 .txt.jpg 等)的文件数量。以下是一些例子:

统计当前目录下所有 .txt 文件:

find . -name "*.txt" -type f | wc -l

统计指定目录下所有 .jpg 文件:

find /path/to/directory -name "*.jpg" -type f | wc -l

在这些命令中:

  • find 是用来搜索文件的命令。
  • -name 指定了文件名匹配模式。
  • "*.txt""*.jpg" 是文件名匹配模式,用于找出所有 .txt.jpg 文件。
  • -type f 表示只搜索文件(不包括目录)。
  • | wc -l 是一个管道,它把 find 命令找到的每一个文件名传递给 wc 命令,wc 命令的 -l 选项则用于计算这些文件名的数量。

请记得把 /path/to/directory 替换为你实际想要搜索的目录路径。

这样就能得到指定目录下特定文件格式的文件数量了。

3. 查看文件夹下的某个文件的大小

在Linux和Unix系统中,有多种方法可以查看文件夹下某个文件的大小。

  1. 使用 ls 命令:最常见的方法是使用 ls -lh 命令,这里 -l 表示长列表输出,-h 表示以易于阅读的格式(如K,M,G等)显示文件大小。

    ls -lh /path/to/directory/filename
    

    在输出中,文件大小将显示在某一列上。

  2. 使用 stat 命令stat 命令提供了关于文件或文件系统的详细信息。

    stat /path/to/directory/filename
    

    输出中会有一个名为 “Size”的字段,表示文件的大小(以字节为单位)。

  3. 使用 du 命令du(磁盘使用情况)命令也可以用来查看文件大小,但通常用于目录。对于单一文件,使用方法如下:

    du -h /path/to/directory/filename
    

    在这里,-h 选项意味着“人类可读的”大小(如K,M,G等)。

只需将 /path/to/directory/filename 替换为你希望查询的实际文件路径即可。

4. 修改文件夹的名称

在 Linux 中,你可以使用 mv(move)命令来重命名文件夹。基本语法如下:

mv old_folder_name new_folder_name

这里,old_folder_name 是你想要重命名的现有文件夹,而 new_folder_name 是你希望给它的新名称。

例如,如果你有一个名为 old_folder 的文件夹,你想把它重命名为 new_folder,你可以执行以下命令:

mv old_folder new_folder

注意:

  • 确保 new_folder_name 还没有被其他文件或文件夹使用,否则 mv 命令会覆盖它,除非你使用了 -i 选项来进行确认。

  • 如果你不是文件夹的所有者或没有适当的权限,你可能需要使用 sudo 命令。

sudo mv old_folder_name new_folder_name

这是基础的重命名操作。有时你可能需要更复杂的操作,如在不同的目录中移动和重命名文件夹,但基本的 mv 命令通常足够用于简单的重命名操作。

5. 统计当前文件夹下文件大小不为0的文件个数

使用find命令

find命令可以用来查找文件和目录。你可以使用find命令来查找大小不为0的文件,并使用wc -l来统计这些文件的数量。

find . -maxdepth 1 -type f -size +0c | wc -l

这里,

  • . 指定在当前目录下进行搜索。
  • -maxdepth 1 限制搜索深度为当前目录,不包括子目录。
  • -type f 只查找文件。
  • -size +0c 限制只查找大小大于0字节的文件。
  • wc -l 统计行数,也就是找到的文件个数。

使用lsawk

你也可以使用lsawk的组合来实现这一目标。

ls -l | awk '$5 > 0 && $9 != "" {count++} END {print count}'

这里,

  • ls -l 列出当前目录下所有文件和目录的详细信息。
  • awk '$5 > 0 && $9 != "" {count++} END {print count}' 使用awk进行过滤和计数。
    • $5 > 0 表示文件大小大于0。
    • $9 != "" 表示这一行确实是一个文件(而非目录等)。
    • count++ 是计数器,用于统计符合条件的文件。
    • END {print count} 在处理完所有行之后,打印文件的数量。

:在这个awk命令中,$5$9都是字段(columns)。

  • $5:表示每一行的第5个字段,通常是文件的大小(单位为字节)。在ls -l命令的输出中,这通常是在文件权限和属主/属组信息之后出现的字段。

    例如,在以下ls -l输出行中:

    -rw-r--r--  1 username groupname  1234  Sep  1 12:34  example.txt
    

    1234就是文件大小,也就是第5个字段。

  • $9:表示每一行的第9个字段,在大多数情况下,这通常是文件或目录的名称。

    例如,在同一个ls -l输出行中:

    -rw-r--r--  1 username groupname  1234  Sep  1 12:34  example.txt
    

    example.txt就是文件名,也就是第9个字段。

所以在awk '$5 > 0 && $9 != "" {count++} END {print count}'这个命令中,$5 > 0确保只统计文件大小大于0的文件,$9 != ""确保这个字段(通常是文件名或目录名)不是空的,然后count++统计这样的行数(即符合条件的文件数)。最后,在所有行都被处理后,END {print count}会输出这个数量。

6. 统计当前文件夹下指定文件格式的文件大小不为0的文件个数

在Linux下,你可以使用find命令结合wc -l命令来实现这个功能。例如,如果你想统计当前目录下所有大小不为0且扩展名为.txt的文件个数,你可以运行以下命令:

find . -maxdepth 1 -type f -name "*.txt" -size +0c | wc -l

这里的各个选项代表:

  • .:在当前目录下进行搜索。
  • -maxdepth 1:仅搜索当前目录,不包括子目录。
  • -type f:只查找文件,忽略目录。
  • -name "*.txt":只查找扩展名为.txt的文件。
  • -size +0c:只查找大小不为0的文件。
  • wc -l:统计输出行数,也就是符合条件的文件个数。

这条命令将统计出当前目录下所有扩展名为.txt且文件大小不为0的文件的个数。

可以根据需要更改*.txt为其他你想查找的文件格式。例如,如果想查找所有.jpg文件,可以使用-name "*.jpg"选项。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

青衫客36

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

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

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

打赏作者

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

抵扣说明:

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

余额充值