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

2023-11-18

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"选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 通过 Visual Studio 2017 使用远程调试时 Linux 控制台输出在哪里?

    我的Visual Studio 2017 VS2017 成功连接Linux系统 代码如下 include
  • 如何使用 Cloud Init 挂载未格式化的 EBS 卷

    Context 我正在使用https wiki jenkins io display JENKINS Amazon EC2 Plugin https wiki jenkins io display JENKINS Amazon EC2 Pl
  • 在 Linux 上以编程方式设置 DNS 名称服务器

    我希望能够通过我的 C C 程序为 Linux 上的 DNS 名称服务器添加 IP 地址 我在一个带有只读 etc resolv conf 的嵌入式平台上 这意味着我不能简单地将 nameserver xxx xxx xxx xxx 行添加
  • linux-x64 二进制文件无法在 linuxmusl-x64 平台上使用错误

    我正在安装Sharp用于使用 package json 的 Nodejs 项目的 docker 映像上的映像压缩包 当我创建容器时 我收到有关 Sharp 包的以下错误 app node modules sharp lib libvips
  • 如何在linux中以编程方式获取dir的大小?

    我想通过 C 程序获取 linux 中特定目录的确切大小 我尝试使用 statfs path struct statfs 但它没有给出确切的大小 我也尝试过 stat 但它返回任何目录的大小为 4096 请建议我如何获取 dir 的确切大小
  • 使用循环在 C 中管道传输两个或多个 shell 命令

    我正在尝试执行ls wc l通过 C 语言程序 而不是使用命令行 这是我当前的工作代码 int main int pfds 2 pipe pfds pid t pid fork if pid 0 The child process clos
  • 使用包管理器时如何管理 Perl 模块?

    A 最近的问题 https stackoverflow com questions 397817 unable to find perl modules in intrepid ibex ubuntu这让我开始思考 在我尝试过的大多数 Li
  • 与 pthread 的进程间互斥

    我想使用一个互斥体 它将用于同步对两个不同进程共享的内存中驻留的某些变量的访问 我怎样才能做到这一点 执行该操作的代码示例将非常感激 以下示例演示了 Pthread 进程间互斥体的创建 使用和销毁 将示例推广到多个进程作为读者的练习 inc
  • 静态方法的 Java 内存模型

    我来自操作系统和 C 语言背景 在代码编译时 世界很简单 需要处理和理解堆栈 堆文本部分等 当我开始学习 Java 时 我确实了解 JVM 和垃圾收集器 我对静态方法感到很有趣 根据我的理解 类的所有实例都会在堆中创建 然后被清理 但是 对
  • Intel 上的 gcc 中的 _mm_pause 用法

    我参考过这个网页 https software intel com en us articles benefitting power and performance sleep loops https software intel com
  • 绕过 dev/urandom|random 进行测试

    我想编写一个功能测试用例 用已知的随机数值来测试程序 我已经在单元测试期间用模拟对其进行了测试 但我也希望用于功能测试 当然不是全部 最简单的方法是什么 dev urandom仅覆盖一个进程 有没有办法做类似的事情chroot对于单个文件并
  • Linux 为一组进程保留一个处理器(动态)

    有没有办法将处理器排除在正常调度之外 也就是说 使用sched setaffinity我可以指示线程应该在哪个处理器上运行 但我正在寻找相反的情况 也就是说 我想从正常调度中排除给定的处理器 以便只有已明确调度的进程才能在那里运行 我还知道
  • 如何使用Android获取Linux内核的版本?

    如何在 Android 应用程序中获取 Linux 内核的版本 不是 100 确定 但我认为调用 uname r 需要 root 访问权限 无论如何 有一种不太肮脏的方法可以做到这一点 那就是 System getProperty os v
  • 使用os.execlp时,为什么`python`需要`python`作为argv[0]

    代码是这样的 os execlp python python child py other args this works os execlp python child py other args this doesn t work 我读过
  • cdc_acm:无法设置 dtr/rts - 无法与 USB cdc 设备通信

    我试图使用 pic24fj128gb206 枚举 usb cdc 设备 设备似乎已正确枚举 但是当我将设备连接到 Linux PC 时 我从内核收到以下警告消息 cdc acm 1 8 1 6 7 1 0 failed to set dtr
  • 为什么同一个curl命令在windows和linux下输出不同的东西?

    为什么同样的curl o file https www link com 命令输出不同的东西 例如 如果我运行命令curl o source txt https www youtube com playlist list PLIx6Fwnp
  • 使用自定义堆的类似 malloc 的函数

    如果我希望使用自定义预分配堆构造类似 malloc 的功能 那么 C 中最好的方法是什么 我的具体问题是 我有一个可映射 类似内存 的设备 已将其放入我的地址空间中 但我需要获得一种更灵活的方式来使用该内存来存储将随着时间的推移分配和释放的
  • 嵌入式 Linux – 部署固件更新的机制? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我正在考虑在 Yocto 项目上开发一个嵌入式 Linux 项目 一个工业应用程序 我有几个问题想问那些有嵌入式 Linux 经验的人 Y
  • 具有多处理功能的 Python 代码无法在 Windows 上运行

    以下简单的绝对初学者代码在 Ubuntu 14 04 Python 2 7 6 和 Cygwin Python 2 7 8 上运行 100 但在 Windows 64 位 Python 2 7 8 上挂起 我使用另一个片段观察到了同样的情况
  • 跨 CPU 内核的 rdtsc 精度

    我从一个线程发送网络数据包 并在运行于不同 CPU 核心上的第二个线程上接收回复 我的流程测量每个数据包发送和接收之间的时间 类似于 ping 我使用 rdtsc 来获得高分辨率 低开销的计时 这是我的实现所需要的 所有测量结果看起来都很可

随机推荐

  • Youtube ASX Portfolio的视频笔记 What is a Quant? - Financial Quantitative Analyst

    What is a Quant Financial Quantitative Analyst YouTube youtube 上搜 option pricing 很多讲解 Stochastic Calculus的 In this video
  • RTTI简述

    RTTI的用途 RTTI的使用 dynamic cast typeid 使用总结 dynamic cast与其他转换运算符 RTTI的用途 得益于虚函数表 如果派生类实现了基类中的虚函数 通过基类指针或引用可以完成正确的函数调用 但是也不得
  • Oracle在Linux系统连接很慢的问题

    无比的兴奋 新版本的Bing支持国际版 这样就可以更好的检索国外的资料了 Oracle在Centos7中连接局域网内的速度很慢的问题 终于找到问题的原因了 当然可能还会存在其他问题 本文考虑两个 1 代理问题 ProxySelector s
  • linux mknod命令解析【转】

    转自 https blog csdn net a1010256340 article details 83088870 linux系统中设备管理的基本知识 我们的linux操作系统跟外部设备 如磁盘 光盘等 的通信都是通过设备文件进行的 应
  • linux qcom串口下载,qcom 跨平台的串口调试工具 PKGBUILD

    Id PKGBUILD 2013 06 26 GunsNRose Maintainer GunsNRose Contributor GunsNRose pkgname qcom git pkgname pkgname git pkgver
  • Vue,点击文字更换文本

    div div
  • elasticsearch简介与基本操作

    是什么等 废话后置 1 elasticsearch 分为3个部分 index mapping setting 1 1 index 相当于MySQL的表 elasticsearch 没有库的概念 也没有用户的权限区分概念 所以做好 备份 每个
  • android和harmonyos对比,HarmonyOS和Android深度对比

    HarmonyOS APP 工程结构 HarmonyOS应用发布形态为APP Pack Application Package 简称APP 它是由一个或多个HAP HarmonyOS Ability Package 包以及描述APP Pac
  • k8s Failed to create pod sandbox错误处理

    错误信息 Failed to create pod sandbox rpc error code Unknown desc failed to get sandbox image k8s gcr io pause 3 2 failed to
  • 华为机试 统计字符串中最长的数字串及统计字符串中字母出现最多的次数

    不多说 上代码 package com it thread import java util public class SoftTest public static void main String args Scanner sc new
  • 无法验证驱动程序的签名_无法安装最新版NVIDIA显卡驱动,从技术角度该怎么办?...

    一定会有众多网友 饱受无法更新NVIDIA驱动的困扰 你们一定也很奇怪 我凭实力从正规渠道购买的NVIDIA板卡 凭什么无法及时安装NVIDIA官网提供的驱动程序呢 因为无法更新到413以后的版本 一定也有众多因驱动程序 过时 而被 战地五
  • ACM-Java输入输出基本操作

    一 Java之ACM注意点 1 类名称必须采用public class Main方式命名 2 在有些OJ系统上 即便是输出的末尾多了一个 程序可能会输出错误 所以在我看来好多OJ系统做的是非常之垃圾 3 有些OJ上的题目会直接将OI上的题目
  • Framework层Android4.4锁屏流程分析

    前段时间刚接触到锁屏 我们自己做的锁屏时通过底层通过反射调过去的 所以还是得从framewoke层的启动和加载开始分析 所以画了一下这样的两个图 前面一个图是系统开机调到锁屏的一个流程 后面一个图我分开来画了 一个是按power键灭屏和亮屏
  • 【翻译】#拥抱行动和心理安全--思考根本原因而非根本人物

    本杰明 富兰克林曾经说过 生命中唯一的两个确定性是死亡和税收 但是 如果他是一名工程师 他可能会在这个名单上加上另一个 即故障 脸书的工程师们无疑会同意最近的故障 似乎是由于运行一个命令 无意中关闭了他们骨干网络的所有连接 不仅关闭了脸书
  • 【今日CV 计算机视觉论文速览 第149期】Tue, 30 Jul 2019

    今日CS CV 计算机视觉论文速览 Tue 30 Jul 2019 Totally 77 papers 上期速览 更多精彩请移步主页 Interesting MaskGAN人脸属性操作的新方法 为了克服先前方法受限于预定义的有限人脸特征操作
  • flutter 插件

    一 简介 Flutter 中调用这些能力就必须和原生平台进行通信 目前Flutter 已经支持 iOS Android Web macOS Windows Linux等众多平台 要调用特定平台 API 就需要写插件 插件是一种特殊的包 和纯
  • LeetCode234:回文链表

    题目描述 题目链接 请判断一个链表是否为回文链表 示例 1 输入 1 gt 2 输出 false 示例 2 输入 1 gt 2 gt 2 gt 1 输出 true 进阶 你能否用 O n 时间复杂度和 O 1 空间复杂度解决此题 解题思路
  • 贪吃蛇实验报告

    贪吃蛇实验报告 第一次写博客 这是中山大学软件工程导论的项目之一 对初学者可能有点难度 分享出来做参考 使用的C语言 如果你喜欢的话可以使用 就这样 直接上代码 智能蛇部分也发上来 include
  • 实现二维数组或多维数组排序得方法

    例 对数组 3 2 6 2 3 6 3 4 5 3 进行排序 方法一 import numpy as np a np array 3 2 6 2 3 6 3 4 5 3 ind np lexsort a 1 a 0 print a ind
  • Linux- 文件夹相关的常用指令

    1 统计文件夹下的文件数量 在 Linux 下 有几种方法可以统计文件夹下的文件数量 使用 ls 和 wc 命令 这种方式可以统计目录下的直接子文件 不包括子目录里的文件 ls l lt 目录路径 gt wc l 注意 这将也统计目录自身