首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在Powershell中,为什么查找所有目录名要比将所有文件大小相加慢得多?

在Powershell中,查找所有目录名比将所有文件大小相加慢得多的原因是因为目录名的查找需要遍历整个文件系统的目录结构,而文件大小的相加只需要对每个文件进行大小的累加操作。

具体来说,查找所有目录名需要进行以下步骤:

  1. 遍历文件系统的根目录,获取所有子目录的名称。
  2. 对于每个子目录,递归地遍历其下的所有子目录,获取它们的名称。
  3. 重复上述步骤,直到遍历完整个文件系统的目录结构。

这个过程需要对每个目录进行递归遍历,涉及到大量的文件系统操作和目录结构的访问,因此耗时较长。

相比之下,将所有文件大小相加只需要对每个文件进行大小的累加操作,不需要遍历整个目录结构。这个过程可以通过遍历文件系统的根目录,获取每个文件的大小,并将其累加起来即可。由于不涉及目录结构的遍历,所以速度较快。

总结起来,查找所有目录名比将所有文件大小相加慢得多是因为目录名的查找需要遍历整个文件系统的目录结构,而文件大小的相加只需要对每个文件进行大小的累加操作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux查找工具的友好替代方案

find命令用来指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。...并且查找到的子目录和文件全部进行显示。...; -ctime:查找指定时间之时被更改的文件或目录,单位以24小时计算; -daystart:从本日开始计算时间; -depth:从指定目录下最深层的子目录开始查找; -expty:寻找文件大小为...例如,要查找当前目录中文件名包含 services 的所有文件,可以使用: $ fd -tf services downloads/services.md 以及,找到当前目录中文件名包含 services...我们告诉 fd 我们要在 etc 目录搜索 passwd 这个单词的所有实例。

4.5K10

【linux命令讲解大全】011.使用find命令指定目录下查找文件及应用技巧和选项详情

find 指定目录下查找文件 补充说明 find 命令用来指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找目录名。...; -ctime:查找指定时间之时被更改的文件或目录,单位以24小时计算; -daystart:从本日开始计算时间; -depth:从指定目录下最深层的子目录开始查找; -empty:寻找文件大小为...,单位以日计算; -user:查找符和指定的拥有者名称的文件或目录; -version或 --version:显示版本信息; -xdev:范围局限在先行的文件系统; -xtype<文件类型...查找当前目录下所有 .txt 文件并把他们拼接起来写入到 all.txt 文件 find ....(为什么你要命名一个 bucketofjpg 而不是 pictures 的目录就超出了本文的范围。)我们使用 -type 参数修改我们的命令来查找文件。

1.6K10
  • Linux 命令之 find:查找文件

    Linux 命令,find用于指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找目录名,其支持按名称查找、按正则表达式查找、按文件大小查找、按文件权限查找等多种查询方式。...示例 1:查找当前目录及其子目录下所有文件和文件夹 find . ?...示例 7:借助-exec命令,当前目录及子目录下所有.txt格式的文件以File:文件名的形式打印出来 find ....示例 8:借助-exec命令,当前目录及子目录下所有 3 天前的.txt格式的文件复制一份到old目录 find ....,单位以日计算 -user 查找符和指定的拥有者名称的文件或目录 -version或——version 显示版本信息 -xdev 范围局限在先行的文件系统 -xtype

    6K20

    Linux系列教程(六)——Linux常用命令之文件搜索命令

    但是大家需要注意的是,后面两个命令只能由root用户来完成,而chmod命令除了root用户能完成,还有所更改文件或目录的所有者。那么这篇博客我们继续介绍Linux命令——文件搜索命令。...二、根据 文件大小 搜索   比如:根目录下查找大于 100M 的文件   find / -size +204800   这里 +n 表示大于,-n 表示小于,n 表示等于   1 数据块 == 512...、命令所在路径:/usr/bin/locate   ④、执行权限:所有用户   ⑤、功能描述:文件资料库查找文件   ⑥、语法:locate【文件名】         -i  不区分大小写 注意:...所以locate命令的执行要比find命令执行速度快很多。但是这里有个问题,文件资料库是需要不断更新的。我们新创建的文件如果不更新 文件资料库,使用 locate 是查找不到的。...5、文件搜寻字符串匹配的行并输出:grep   ①、命令名称:grep   ②、英文原意:   ③、命令所在路径:/bin/grep   ④、执行权限:所有用户   ⑤、功能描述:文件搜寻字符串匹配的行并输出

    1.5K50

    linux find 命令查找文件和文件夹

    任何位于参数之前的字符串都将被视为欲查找目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且查找到的子目录和文件全部进行显示。...; -ctime:查找指定时间之时被更改的文件或目录,单位以24小时计算; -daystart:从本日开始计算时间; -depth:从指定目录下最深层的子目录开始查找; -expty:寻找文件大小为...-true:find指令的回传值皆设为True; -typ:只寻找符合指定的文件类型的文件; -uid:查找符合指定的用户识别码的文件或目录; -used:查找文件或目录被更改之后指定时间曾被存取过的文件或目录...,单位以日计算; -user:查找符和指定的拥有者名称的文件或目录; -version或——version:显示版本信息; -xdev:范围局限在先行的文件系统; -xtype<文件类型...查找当前目录下所有.txt文件并把他们拼接起来写入到all.txt文件 find .

    27.6K51

    Linux之find命令

    find命令用来指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。...; -ctime:查找指定时间之时被更改的文件或目录,单位以24小时计算; -daystart:从本日开始计算时间; -depth:从指定目录下最深层的子目录开始查找; -empty:寻找文件大小为...-true:find指令的回传值皆设为True; -type:只寻找符合指定的文件类型的文件; -uid:查找符合指定的用户识别码的文件或目录; -used:查找文件或目录被更改之后指定时间曾被存取过的文件或目录...,单位以日计算; -user:查找符和指定的拥有者名称的文件或目录; -version或——version:显示版本信息; -xdev:范围局限在先行的文件系统; -xtype<文件类型...查找系统24小时以内被访问过的文件 > find / -atime -1 查找系统24小时以内被修改过内容的文件 > find / -mtime -1 查找系统48小时之前被修改过内容的文件 >

    3.9K00

    Linux之find命令

    find命令用来指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。...命令功能 用于文件树查找文件,并作出相应的处理 命令参数 -amin:查找指定时间曾被存取过的文件或目录,单位以分钟计算; -anewer:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录...; -ctime:查找指定时间之时被更改的文件或目录,单位以24小时计算; -daystart:从本日开始计算时间; -depth:从指定目录下最深层的子目录开始查找; -empty:寻找文件大小为...-true:find指令的回传值皆设为True; -type:只寻找符合指定的文件类型的文件; -uid:查找符合指定的用户识别码的文件或目录; -used:查找文件或目录被更改之后指定时间曾被存取过的文件或目录...,单位以日计算; -user:查找符和指定的拥有者名称的文件或目录; -version或——version:显示版本信息; -xdev:范围局限在先行的文件系统; -xtype<文件类型

    3.5K10

    Linux之find命令

    find命令用来指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。...命令功能 用于文件树并作出相应的处理 命令参数 -amin:查找指定时间曾被存取过的文件或目录,单位以分钟计算; -anewer:查找其存取时间较指定文件或目录的存取时间更接近现在的文件或目录...; -ctime:查找指定时间之时被更改的文件或目录,单位以24小时计算; -daystart:从本日开始计算时间; -depth:从指定目录下最深层的子目录开始查找; -empty:寻找文件大小为...-true:find指令的回传值皆设为True; -type:只寻找符合指定的文件类型的文件; -uid:查找符合指定的用户识别码的文件或目录; -used:查找文件或目录被更改之后指定时间曾被存取过的文件或目录...,单位以日计算; -user:查找符和指定的拥有者名称的文件或目录; -version或——version:显示版本信息; -xdev:范围局限在先行的文件系统; -xtype<文件类型

    1.3K30

    Linux之find命令

    find命令用来指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。...; -ctime:查找指定时间之时被更改的文件或目录,单位以24小时计算; -daystart:从本日开始计算时间; -depth:从指定目录下最深层的子目录开始查找; -empty:寻找文件大小为...-true:find指令的回传值皆设为True; -type:只寻找符合指定的文件类型的文件; -uid:查找符合指定的用户识别码的文件或目录; -used:查找文件或目录被更改之后指定时间曾被存取过的文件或目录...,单位以日计算; -user:查找符和指定的拥有者名称的文件或目录; -version或——version:显示版本信息; -xdev:范围局限在先行的文件系统; -xtype<文件类型...查找系统24小时以内被访问过的文件 > find / -atime -1 查找系统24小时以内被修改过内容的文件 > find / -mtime -1 查找系统48小时之前被修改过内容的文件 >

    1.4K10

    windows命令行混淆

    一个简单的例子就是目录名中间有空格。 ? 用法即是我们可以敏感文件名、命令中间添加空格。 ? 转义符 转义符(^)也可以做为切割文件名的一个符号,但是该符号不能够连续输入。 ?...@符的作用,@符能够值传递到前面的环境变量,如: cmd /c "set x=c@alc & echo %x:@=test% | cmd" 这就可以test传到c@alc的@位置,输出将是ctestalc...循环语句查找 我们也可以通过for循环去查找我们所要的字符串执行,可以避免命令行输入特殊的字符。 首先要说明for循环的几个参数及语句的意义。...\”) do %g 从”c:\windows\system32\powershell以反斜杠为分隔符,提取第四列的字符串并执行。...当然我们可以从文件名、目录名、文件、环境变量中去读取数据,这样我们需要的字符串就都能够提取到。 ?

    1.5K20

    搜索指令

    参数说明: 时间查找参数: -atime n :n*24小时内存取过的的文件列出来 -ctime n :n*24小时内改变、新增的文件或者目录列出来 -mtime n :n*24小时内修改过的文件或者目录列出来...$ find / -name nginx 搜索当前目录所有过去10分钟更新过的普通文件。 $ find ....locate命令其实是“find -name”的另一种写法,但是要比后者快得多, 原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb或者/var/lib/mlocate...,这是因为linux系统会将 系统内的所有文件都记录在一个数据库文件,当使用whereis和下面即将介绍的locate时,会从数据库查找数据,而不是像find命令那样,通 过遍历硬盘来查找,效率自然会很高...which命令的作用是PATH变量指定的路径,搜索某个系统命令的位置,并且返回第一个搜索结果。

    53720

    find命令

    find命令 find命令用来指定目录下查找文件,任何位于参数之前的字符串都将被视为要查找目录名,如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件,并且查找到的子目录和文件全部进行显示...-print0: 假设find指令的回传值为Ture,就将文件或目录名称列出到标准输出。格式为全部的名称皆同一行。...-size: 查找符合指定的文件大小的文件。 -true: find指令的回传值皆设为True。 -type: 只寻找符合指定的文件类型的文件。...-user: 查找符和指定的拥有者名称的文件或目录。 -version, --version: 显示版本信息。 -xdev: 范围局限在先行的文件系统。...find /tmp/ -ctime -1 # /tmp/ # /tmp/1 # /tmp/file.txt # /tmp/file 查找/tmp/目录及其子目录下所有更改时间7日以前的普通文件,并在删除之前询问是否删除

    2K41

    Linux常用命令

    [] 可以匹配字符组任意一个 ls [a-z]  2.切换目录    cd [目录名称]  切换到指定目录    cd   切换到当前用户的主目录【/home/用户目录】    cd ~  切换到当前用户的主目录...切换到上级目录      cd -    切换到上次工作目录【最近两次工作目录来回切换】   3.创建和删除命令    mkdir   目录名  创建新目录    mkdir -p 目录名  递归创建目录...  重定向       >  文件名     重定向,输出内容添加到指定文件 【覆盖】  例: echo linux  > 1,txt    linux字符串写入文件    ls -hl >...1.txt   列表写入文件       >>  文件名   重定向, 输出内容追加到指定文件【不覆盖】 例: echo  linux  >> 1.txt      ls -hl  >> 1.txt...]  显示目录下文件大小   2.

    12.5K31

    Linux 文件搜索

    匹配任意一个字符 [] 匹配任意一个括号内的字符 不区分大小写查找文件 $find ~ -iname test.txt 安装文件所有查找 # find /root -user root 时间搜索...-size大小文件大小搜索,搜索单位M k find ....-size 20k locate locate命令其实是“find -name”的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/locatedb),这个数据库中含有本地所有文件信息...为了避免这种情况,可以使用locate之前,先使用updatedb命令,手动更新数据库。...$ locate -i ~/m 搜索用户主目录下,所有以m开头的文件,并且忽略大小写 which which命令的作用是,PATH变量指定的路径,搜索某个系统命令的位置,并且返回第一个搜索结果。

    4.8K20

    linux系列之: 你知道查看文件空间的两种方法吗?

    简介 linux系统查看文件空间大小应该是一个非常常见的命令了,今天给大家介绍linux系统查看文件空间的两种方法和在使用可能会遇到的奇怪问题. 为什么会有两种方法呢?...比如查看当前目录的空间使用情况可以用: # du -ah 上面的命令显示的是目录所有文件.如果要将所有的文件都统计累加的话,那么可以用: # du -hs 如果要指定特定的目录, 直接在后面加上目录名即可...如果你又想查看目录具体文件的大小,又想统计总的大小,那么可以使用: du -ch 上面的命令会将总的大小添加在后面....大多数情况下是一样的,但是某些情况两者的统计会出现较大的误差. 大家可能会有过这样的经历,就是一个很大的日志文件,还在源源不断的写入,如果这时候把这个日志文件删除了,会发生什么情况呢?...对于du来说是统计文件大小相加,而df是统计数据块使用情况.

    56410

    Powershell快速入门(三) 实战应用

    比方说,我现在想查找大于5kb的所有.md格式文件,那么就可以这么写。这里又用到了Powershell的一个方便的特性,文件大小单位,KB GB MB TB等单位都支持。...当然其实并不仅仅可以查询文件大小属性,基本上所有文件信息都可以用来查询。...下面的代码做的就是C#代码改写成Powershell脚本。...这里推荐使用Powershell ISE,因为自动补全可以显示所有类型的图标,只需要修改一下图表类型并观察Excel图标类型的变化就可以明白类型和图标的对应关系了。...使用它,我们可以没有安装Excel的情况下编辑Excel文件。 首先需要安装它,可以利用Powershell的包管理器方便的安装。

    3.8K101

    python的pip快速安装代码

    pip install xx,经常由于网速,或者安装版本问题导致安装速度超时等问题, 现提供一个py镜像安装代码,安装库文件前执行下这个程序,可以很快下载 cmd 进入命令提示符 python .py...nt" print (os.getenv('path')) #读取环境变量 print (os.getcwd()) #获取当前的路径 二:目录操作-增删改查 os.listdir():返回指定目录下的所有文件和目录名...os.removedirs(dirname):删除目录无文件的空目录 os,chdir():改变当前目录,到指定目录 os,rename():重命名目录名或者文件名 dirs="D:\\Release...判断是否为目录 path模块: os.path.basename(path) #返回文件名 os.path.dirname(path) #返回文件路径 os.path.getsize(name) #获得文件大小...import os #coding=utf-8 '''编写程序: 1:能在当前目录下查找文件名包含指定字符串的文件 2:并打印出绝对路径 ''' sub_str="homework" cur_dir=os.getcwd

    69130

    Linux下文件搜索、查找、查看命令

    一、根据 文件或目录名称 搜索 find 【搜索目录】【-name或者-iname】【搜索字符】:-name和-iname的区别一个区分大小写,一个不区分大小写 eg:/etc 目录下搜索名字为...表示单个字符,即搜索到 init___) 二、根据 文件大小 搜索 eg:根目录下查找大于 100M 的文件 find / -size +204800 这里 +n 表示大于,-n 表示小于,n...root 的文件     find /home -group root ②、home目录下查询所有者为 root 的文件     find /home -user root 四、根据 时间属性...所以locate命令的执行要比find命令执行速度快很多。但是这里有个问题,文件资料库是需要不断更新的。我们新创建的文件如果不更新 文件资料库,使用 locate 是查找不到的。...:grep 功能描述:文件搜寻字符串匹配的行并输出  语法:grep -iv 【指定字符串】【文件】         -i 不区分大小写         -v 排除指定字符串  eg:查找

    2.9K30
    领券