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- 文件夹相关的常用指令 的相关文章

  • 在 Mac OS X 上构建 Linux 内核

    我正在做一个修改Linux内核的项目 我有一台桌面 Linux 机器 在上面构建内核没有问题 不过 我要去旅行 我想在途中工作 我只有一台 MacBook 当我尝试构建 Linux 内核时 它抱怨说elf h was not found 我
  • 何时使用 pthread 条件变量?

    线程问题 看来 只有在其他线程调用 pthread cond notify 之前调用 pthread cond wait 时 条件变量才起作用 如果在等待之前发生通知 那么等待将被卡住 我的问题是 什么时候应该使用条件变量 调度程序可以抢占
  • 修改linux下的路径

    虽然我认为我已经接近 Linux 专业人士 但显然我仍然是一个初学者 当我登录服务器时 我需要使用最新版本的R 统计软件 R 安装在 2 个地方 当我运行以下命令时 which R I get usr bin R 进而 R version
  • 抑制 makefile 中命令调用的回显?

    我为一个作业编写了一个程序 该程序应该将其输出打印到标准输出 分配规范需要创建一个 Makefile 当调用它时make run gt outputFile应该运行该程序并将输出写入一个文件 该文件的 SHA1 指纹与规范中给出的指纹相同
  • 如何使用 bash 锁定文件

    我有一个任务从远程服务器同步目录 rsync av email protected cdn cgi l email protection srv data srv data 为了使其定期运行并避免脚本 reEnter 问题 我使用 rsyn
  • 如何使用 xterm.js 创建基于 Web 的终端以 ssh 进入本地网络上的系统

    我偶然发现了这个很棒的图书馆xterm js https xtermjs org 这也是 Visual Studio Code 终端的基础 我有一个非常普遍的问题 我想通过基于网络的终端 不在网络中 可能位于 aws 服务器上 访问本地网络
  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 如何查明CONFIG_FANOTIFY_ACCESS_PERMISSIONS是否启用?

    我想利用fanotify 7 http man7 org linux man pages man7 fanotify 7 html我遇到的问题是在某些内核上CONFIG FANOTIFY ACCESS PERMISSIONS不起作用 虽然C
  • 大多数 Linux 系统头文件与 C++ 兼容吗?

    大多数 Linux 系统头文件 API C 兼容吗 今天我试图做这样的事情 include
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • 如何在数组中存储包含双引号的命令参数?

    我有一个 Bash 脚本 它生成 存储和修改数组中的值 这些值稍后用作命令的参数 对于 MCVE 我想到了任意命令bash c echo 0 0 echo 1 1 这解释了我的问题 我将用两个参数调用我的命令 option1 without
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • nslookup 报告“无法解析 '(null)': 名称无法解析”,尽管它成功解析了 DNS 名称

    我在 ubuntu 上 并且正在运行 docker 默认桥接网络 我有 Zookeeper kafka 的容器化版本 以及我编写的与 kafka 对话的应用程序 I do a docker exec it
  • 如何在 Linux shell 中将十六进制转换为 ASCII 字符?

    假设我有一个字符串5a 这是 ASCII 字母的十六进制表示Z 我需要找到一个 Linux shell 命令 它将接受一个十六进制字符串并输出该十六进制字符串代表的 ASCII 字符 所以如果我这样做 echo 5a command im
  • PHP 从命令行启动 gui 程序,但 apache 不启动

    首先 我阅读了有类似问题的人的一些帖子 但所有答案都没有超出导出 DISPLAY 0 0 和 xauth cookies 这是我的问题 提前感谢您的宝贵时间 我开发了一个小库 它使用 OpenGL 和 GLSL 渲染货架 过去几天我将它包装
  • NPTL 和 POSIX 线程有什么区别?

    NPTL 和 POSIX 线程之间的基本区别是什么 这两者是如何演变的 POSIX 线程 pthread 不是一个实现 它是几个函数的 API 规范 纸上的标准 英文 其名称以pthread 以及定义在
  • 在 Linux 上使用多处理时,TKinter 窗口不会出现

    我想生成另一个进程来异步显示错误消息 同时应用程序的其余部分继续 我正在使用multiprocessingPython 2 6 中的模块来创建进程 我试图用以下命令显示窗口TKinter 这段代码在Windows上运行良好 但在Linux上
  • iptables通过注释删除特定规则

    我需要删除一些具有相同评论的规则 例如 我有带有 comment test it 的规则 所以我可以像这样获得它们的列表 sudo iptables t nat L grep test it 但是我怎样才能删除所有带有注释 测试它 的 PR

随机推荐

  • 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 注意 这将也统计目录自身