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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/68795.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子科大软件系统架构设计——面向对象建模基础

文章目录 面向对象建模基础UML建模语言UML模型图用例图活动图类图顺序图通信图状态机图构件图部署图包图对象图组合结构图扩展图交互概览图时间图 BPMN建模语言业务建模定义模型元素流对象活动事件网关 流数据人工制品泳池和泳道 建模案例订单采购流程建模电商系统订货业务流程…

搭建最简单的SpringBoot项目

1、创建maven项目 2、引入父pom <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.15</version> </parent> 3、引入springboot-web依赖 <dependency…

React【React是什么?、创建项目 、React组件化、 JSX语法、条件渲染、列表渲染、事件处理】(一)

文章目录 React是什么&#xff1f; 为什么要学习React React开发前准备 创建React项目 React项目结构简介 React组件化 初识JSX 渲染JSX描述的页面 JSX语法 JSX的Class与Style属性 JSX生成的React元素 条件渲染&#xff08;一&#xff09; 条件渲染 &#xff0…

系统架构技能之设计模式-工厂模式

一、开篇 本文主要是讲述设计模式中最经典的创建型模式-工厂模式&#xff0c;本文将会从以下几点对工厂模式进行阐述。 本文将会从上面的四个方面进行详细的讲解和说明&#xff0c;当然会的朋友可以之处我的不足之处&#xff0c;不会的朋友也请我们能够相互学习讨论。 二、摘…

MATLAB/Python的编程教程: 匹配滤波器的实现

MATLAB/Python的编程教程: 匹配滤波器的实现 注1:本文系“MATLAB/Python的编程教程”系列之一,致力于使用Python和Matlab实现特定的功能。本次要实现的功能是:匹配滤波器的实现。 匹配滤波器,这是一个在信号处理领域常见的主题,主要用于增强特定信号的检测性能,特别是在噪…

Java后端开发面试题——企业场景篇

单点登录这块怎么实现的 单点登录的英文名叫做&#xff1a;Single Sign On&#xff08;简称SSO&#xff09;,只需要登录一次&#xff0c;就可以访问所有信任的应用系统 JWT解决单点登录 用户访问其他系统&#xff0c;会在网关判断token是否有效 如果token无效则会返回401&am…

C#循环定时上传数据,失败重传解决方案,数据库标识

有些时候我们需要定时的上传一些数据库的数据&#xff0c;在数据不完整的情况下可能上传失败&#xff0c;上传失败后我们需要定时在重新上传失败的数据&#xff0c;该怎么合理的制定解决方案呢&#xff1f;下面一起看一下&#xff1a; 当然本篇文章只是提供一个思路&#xff0…

数据库 | 数据库概述、关系型数据库、非关系型数据库

目录&#xff1a; 1.数据库&#xff1a;1.1 数据库的含义1.2 数据库的特点 2.数据表3.数据库管理系统4.数据库系统5.关系型数据库 和 非关系型数据库&#xff1a;5.1 关系型数据库5.2 关系型数据库“优势”5.3 非关系型数据库 6.关系型数据库 和 非关系型数据库 的“区别” 1.数…

SAP-PP:基础概念笔记-5(物料主数据的MRP1~4视图)

文章目录 前言一、MRP1视图Base Unit of Measure&#xff08;UoM&#xff09;MRP 组采购组ABC 指示器Plant-Specific Material Status 特定的工厂物料状态MRP 类型 MRP TypeMRP 类型 MRP TypeMaster Production Scheduling(MPS) 主生产计划基于消耗的计划(CBP)再订货点Reorder-…

uni-app点击复制指定内容(点击复制)

官方api uni.setClipboardData(OBJECT) uni.setClipboardData({data: 要被复制的内容,success: function () {console.log(success);} });

Liquid UI和Fiori的区别

主要围绕以下几个方面就Liquid UI和Firor来进行比较&#xff1a; 开发周期开发成本稳定性和支援性平台架构 影响Firor决策的因素&#xff1a; 复杂的编程过程&#xff0c;Fiori对开发人员要求高&#xff0c;开发难度大&#xff0c;而Liquid UI让开发人员不需要懂SAP后端&…

yolov5运行过程遇到的小问题(随时更新)

1.关于git的问题 解决办法&#xff1a;插入下面代码 import os os.environ["GIT_PYTHON_REFRESH"] "quiet"2.页面太小无法完成操作 解决办法: 如果不好使再考虑降低Batch_Size大小或者调整虚拟内存可用硬盘空间大小&#xff01;&#xff08;调整虚拟内存…

Sa-Token实现网关统一鉴权和内部服务外网隔离

&#x1f388; 1 参考文档 网管关统一鉴权 | sa-token.cc &#x1f969;2 微服务中使用Sa-Token依赖引入说明 2.1 Sa-Token依赖 对于网关服务&#xff0c;大体来讲分为两种&#xff1a; 一种是基于Servlet模型的&#xff0c;如&#xff1a;Zuul&#xff0c;我们需要引入的是…

整理mongodb文档:分页

个人博客 整理mongodb文档:分页 个人博客&#xff0c;求关注&#xff0c;如果文章不够清晰&#xff0c;麻烦指出。 文章概叙 本文主要讲下在聚合以及crud的find方法中如何使用limit还有skip进行排序。 分页的情况很经常出现&#xff0c;这也是这篇博客诞生的理由。 数据准备…

Vue组件之间传值

聊一聊vue里面组件之间的传值 首先总结一下vue里面传值的几种关系&#xff1a; 如上图所示, A与B、A与C、B与D、C与F组件之间是父子关系&#xff1b; B与C之间是兄弟关系&#xff1b;A与D、A与E之间是隔代关系&#xff1b; D与F是堂兄关系&#xff0c;针对以上关系 我们把组件…

Redis 缓存穿透击穿和雪崩

一、说明 Redis 缓存的使用&#xff0c;极大的提升了应用程序的性能和效率&#xff0c;特别是数据查询方面。但同时&#xff0c;它也带来了一些问题。其中&#xff0c;最要害的问题&#xff0c;就是数据的一致性问题&#xff0c;从严格意义上讲&#xff0c;这个问题无解。如果对…

c++ 回调函数,std::function,std::bind

回调函数 回调函数的创建步骤大概为&#xff1a; 声明一个函数指针类型。拟写使用回调函数的函数&#xff0c;将函数指针类型及变量名声明作为参数传递。拟写符合函数指针类型的实现函数&#xff0c;将实现函数的指针作为参数传递给使用它的函数。 定义回调函数的指针类型&a…

【CPP_Primer_Plus】学习助手

学习网站推荐 cppreference learncpp cplusplus tutorialspoint awesomecpp stackoverflow 视频课程推荐 码农论坛 cpp primer plus

Nginx基础+高级(2022版):待更新

1. 文章说明 说明&#xff1a;目前讲的是第一部分nginx核心技术篇&#xff0c;后需篇章会以第一部分为核心技术篇为基础来展开深度讲解&#xff0c;详情关注后续课程的发布。 2. 介绍和准备环境 2.1 介绍 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器&#xf…

动态维护直径 || 动态维护树上路径 || 涉及LCA点转序列 || 对欧拉环游序用数据结构维护:1192B

https://www.luogu.com.cn/problem/CF1192B 对于直径的求法&#xff0c;常用dp或两次dfs&#xff0c;但如果要动态维护似乎都不太方面&#xff0c;那么可以维护树上路径最大值。 树上路径为&#xff1a; d e p u d e p v − 2 d e p l c a ( u , v ) dep_udep_v-2\times de…