首页 / 知识
关于unix:如何获取find命令以打印出带有文件名的文件大小?
2023-04-15 11:12:00

How do I get the find command to print out the file size with the file name?如果我发出find命令,如下所示:
它输出:
我要"打印"到命令行的是名称和大小:
您需要使用-exec或-printf。 Printf的工作方式如下:
-exec功能更强大,可让您执行任意命令-因此您可以使用'ls'或'wc'版本来打印出文件名以及其他信息。" man find"将向您显示printf的可用参数,它不仅可以执行文件大小操作,还可以做更多的事情。 [edit] -printf不在官方POSIX标准中,因此请检查您的版本是否支持它。但是,大多数现代系统将使用GNU find或类似的扩展版本,因此很有可能实现它。
只是jer.drab.org的回复中的h。节省了转换为MB的时间;) 一个简单的解决方案是在find中使用-ls选项:
这样就为您提供了常规" ls -l"格式的每个条目。或者,要获得您似乎正在寻找的特定输出,请执行以下操作:
这将为您提供文件名,后跟KB大小。 使用gnu find,我认为这就是您想要的。它查找所有实际文件,而不是目录(-f型),并为每个文件打印文件名(%p),制表符( t),以千字节为单位的大小(%k),后缀" KB",然后换行符( n)。
如果printf命令未按照所需的格式设置内容,则可以使用exec,然后使用要在每个文件上执行的命令。使用{}作为文件名,并以分号(;)终止命令。在大多数shell上,所有这三个字符都应使用反斜杠转义。 这是一个简单的解决方案,使用" ls -lh"查找并打印出来,它将以人类可读的形式显示大小(k表示千字节,M表示兆字节):
作为另一种选择," wc -c"将打印文件中的字符数(字节):
这仅给您文件大小,而不是所有不必要的内容。 为什么不使用du -a?例如。
在Mac上运作 Awk可以修正输出,以提供提问者要求的内容。在我的Solaris 10系统上,找到-ls打印大小(KB)作为第二个字段,因此:
否则,请使用-exec ls -lh并从输出中选择size字段。
我在Mac OS X上为此苦苦挣扎,因为其中的find命令不支持 我发现的一个解决方案是,所有文件都是"工作人员",它依赖于"组" ...
这将ls long输出分为三个令牌 然后输出令牌2和3,即输出是字节数,然后是文件名
这应该可以为您提供所需的信息,包括格式(即,首先显示文件名,然后显示大小):
示例输出(我使用
尝试以下命令:
GNU
BSD
但是
脚本世界参考
您可以尝试以下方法:
这将为您提供字节大小。但是du命令还接受参数-k(对于KB)和-m(对于MB)。它会给你类似的输出
|
最新内容
相关内容
linux获取地址命令?
linux获取地址命令?,地址,网络,信息,系统,设备,终端,命令,中心,管理,数字,linux怎么查看ip地址目录方法1:使用Ubantu(乌班图)界面右键点击通知区linux的u盘启动命令?
linux的u盘启动命令?,系统,电脑,工具,信息,软件,网上,名称,工作,设备,通用,从U盘启动linux系统1、在启动界面上选择启动 Linux,进入安装界面。linux设置路由器命令?
linux设置路由器命令?,网络,信息,代码,地址,电脑,工作,环境,系统,密码,路由,linux如何配置路由?注:其中第一条配置的为默认路由,默认路由掩码和基本linux命令面试题?
基本linux命令面试题?,系统,情况,设备,实时,工具,分析,证书,时间,教育,认证,面试套路——如何应对Linux问题mount /dev/hda1 /mnt 如何查看一linux命令连接光驱?
linux命令连接光驱?,系统,位置,设备,数据,电脑,服务,资料,盘中,智能,管理,Linux系统下如何挂载U盘,硬盘,光驱1、加挂NTFS文件系统 在目前多数linuxlspv命令?
linuxlspv命令?,系统,管理,软件,产品,统一,发行,技术,情况,环境,实时,aix查看历史命令1、在WIN下安装的软件,都是32位的或64位的。无法在DOS下linux下分区命令行?
linux下分区命令行?,系统,工具,设备,信息,分区,情况,首次,名称,网络,命令,linux系统格式化分区用哪个命令Linux的磁盘格式化命令是“mkfs”,它u进入linux命令行?
u进入linux命令行?,系统,地址,服务,电脑,命令,管理,工作,首页,终端,目录,linux怎么进入字符命令界面?1、打开linux系统,在linux的桌面的空白处更改时间linux命令?
更改时间linux命令?,时间,系统,命令,环境,网上,信息,资料,概念,位置,终端,linux修改时间命令setdate(linux修改时间命令没权限)1、只修改日期,linux命令行更改中文?
linux命令行更改中文?,系统,环境,管理,国家,信息,软件,文化,设备,中文,命令,linux命令行下怎样改变语言(英文)将内容改为:LANG=zh_CN.UTF-8LANGlinux打包zip命令?
linux打包zip命令?,时间,文件,信息,名称,系统,技术,命令,文件夹,格式,目录,linux中使用zip打包,用什么方法,使得源文件与压缩文件同时存在。需linux的vsp命令?
linux的vsp命令?,手机,系统,软件,状态,信息,设备,发行,平台,电脑,工作,如何在Linux发行版中安装并启用Hyperlinux不能提供hyper—v功能系统。h