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

如何使用otool获取二进制文件的大小?

otool是Mac OS X系统中的一个命令行工具,用于查看和分析二进制文件的信息。通过使用otool命令,可以获取二进制文件的大小。

要使用otool获取二进制文件的大小,可以按照以下步骤进行操作:

  1. 打开终端(Terminal)应用程序。
  2. 使用cd命令切换到包含目标二进制文件的目录。例如,如果目标二进制文件位于桌面上的一个文件夹中,可以使用以下命令切换到该文件夹:cd ~/Desktop/folder_name
  3. 运行以下命令来使用otool获取二进制文件的大小:otool -l binary_file | grep -A 1 -E "(^ *cmd LC_SEGMENT_64|^ *cmd LC_SEGMENT|^ *cmd LC_SYMTAB)" | grep -B 1 -E "(^ *segname __TEXT|^ *segname __DATA|^ *segname __LINKEDIT|^ *nsects 0|^ *nsects 1|^ *nsects 2|^ *nsects 3|^ *nsects 4|^ *nsects 5|^ *nsects 6|^ *nsects 7|^ *nsects 8|^ *nsects 9|^ *nsects 10|^ *nsects 11|^ *nsects 12|^ *nsects 13|^ *nsects 14|^ *nsects 15|^ *nsects 16|^ *nsects 17|^ *nsects 18|^ *nsects 19|^ *nsects 20|^ *nsects 21|^ *nsects 22|^ *nsects 23|^ *nsects 24|^ *nsects 25|^ *nsects 26|^ *nsects 27|^ *nsects 28|^ *nsects 29|^ *nsects 30|^ *nsects 31)" | awk '{print $NF}' | awk '{s+=$1} END {print s}'这个命令会输出二进制文件的大小(以字节为单位)。

需要注意的是,以上命令中的"binary_file"需要替换为目标二进制文件的路径和文件名。例如,如果目标二进制文件名为"example",位于当前目录下,可以使用以下命令:

代码语言:txt
复制
otool -l example | grep -A 1 -E "(^ *cmd LC_SEGMENT_64|^ *cmd LC_SEGMENT|^ *cmd LC_SYMTAB)" | grep -B 1 -E "(^ *segname __TEXT|^ *segname __DATA|^ *segname __LINKEDIT|^ *nsects 0|^ *nsects 1|^ *nsects 2|^ *nsects 3|^ *nsects 4|^ *nsects 5|^ *nsects 6|^ *nsects 7|^ *nsects 8|^ *nsects 9|^ *nsects 10|^ *nsects 11|^ *nsects 12|^ *nsects 13|^ *nsects 14|^ *nsects 15|^ *nsects 16|^ *nsects 17|^ *nsects 18|^ *nsects 19|^ *nsects 20|^ *nsects 21|^ *nsects 22|^ *nsects 23|^ *nsects 24|^ *nsects 25|^ *nsects 26|^ *nsects 27|^ *nsects 28|^ *nsects 29|^ *nsects 30|^ *nsects 31)" | awk '{print $NF}' | awk '{s+=$1} END {print s}'

otool命令可以帮助开发人员了解二进制文件的结构和大小,对于进行性能优化和资源管理非常有用。

腾讯云相关产品和产品介绍链接地址:

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

相关·内容

Python如何批量获取文件大小并保存

很多时候,查看一个文件夹下每个文件大小可以轻易做到,因为文件后面就是文件尺寸,但是如果需要查看一个文件夹下面所有的文件夹对应尺寸,就发现需要把鼠标放到对应文件夹上,稍等片刻才会出结果。...有时候,我们需要查看几十个甚至于上百个文件夹,找出包含文件最多,空间占用最大那个,就比较麻烦了。这段代码是我以前代码,可以按大小排序输出文件大小到txt文件,供使用方便。...格式化当时花了很长时间,最后发现使用‘YaHei.Consolas’字体可以解决,对齐后输出结果看起来还算舒服。...if directory_list.is_dir(): sub_folder_size = get_folder_size(directory_list.path) # 递归获取大小...directory_size, key=lambda x: x[1], reverse=True) # return a list ordered by size results = [[i[0], '文件大小

2.1K10

PG获取文件大小方式

1、通过元命令获取文件大小 通过\dt+可以得到该表大小。该元命令会转换成SQL语句去执行,实际上是通过pg_table_size函数进行获取。...该函数调用calulate_table_size(rel)其中rel为表描述结构Relation。通过这个方式计算表大小包括fsm、vm文件大小,如果有toast索引,还包括toast表大小。...那么具体获取文件大小方式是什么呢?看calculate_relation_size函数:最终通过stat函数来获取,这个得到文件大小,而不是占用磁盘大小。...2、内部计算表有多少页 通过RelationGetNumberOfBlocks只计算表主文件多少页,调用函数RelationGetNumberOfBlocksInFork进行计算。...该函数对于序列、索引或者分区索引,直接通过smgrnblocks->mdnblocks获得,对于表、toast和物化视图,调用函数table_relation_size计算出文件大小然后除以一页大小得到多少页

1.7K10
  • 如何设置文件大小

    一种方法是使用fseek到你想要大小,然后随便写上一个什么字节。...第二种就是使用filemapping: Windows下先用CreateFile创建一个0字节文件或者打开一个文件, 再用CreateFileMapping创建文件映射内核对象并传递PAGE_READWRITE...标志, 在函数dwMaxumumSizeHigh和dwMaximumSizeLow中传递你想设置文件大小, 系统会自动扩展该文件大小以和你传递参数匹配,从而使你磁盘文件变大!...参数fd是文件描述符。当使用FILE结构时,FILE中_file成员就是其文件描述符。...注意,这个函数内部首先将文件指针设置到文件尾,然后分配一段堆空间,将其填0后,将其写入文件,直到写到所要求大小。这种方法就是不断写0而已。

    2.6K20

    win10 uwp 从StorageFile获取文件大小 获取用户最近使用文件

    本文主要:获取文件大小 private async Task FileSize(Windows.Storage.StorageFile file) { var...在没看到他们说之前没想到,九幽开发者:53078485 参见:http://stackoverflow.com/questions/14168439/how-to-get-file-size-in-winrt 获取用户最近使用文件...一般我们有一个文件夹或文件不在我们应用目录,需要用户Pick获得权限,那么我们会让用户每次都Pick,这样是不行。...我们有什么方法让UWP 记住用户选择文件文件夹,或UWP不让用户每次选择文件 其实有两个方法 MostRecentlyUsedList FutureAccessList 第一个很简单,用户最近使用文件文件夹...FutureAccessList ,这个可以使用1k个,但是为什么只有1k,好少,垃圾wr,要就给无限 参见:http://lindexi.oschina.io/lindexi/post/win10-uwp

    1.7K10

    Linux如何生成指定大小文件

    在一些依赖磁盘空间测试中,或者需要一些大文件时,最好办法是快速生成指定大小文件 fallocate命令(推荐) 可以直接分配一个指定容量真实大小文件,且速度很快。...用法: fallocate -l 5G test.txt --创建一个大小为5G真实文件(ls ,du都能看到5�G) dd命令 #创建一个5G大test.txt文件 dd if=/dev/zero...of=test.txt count=10 bs=512M #创建一个5G大test.txt文件,但显示容量为10G dd if=/dev/zero of=test.txt count=10 bs...=512M seek=10 count 块数量,bs是块大小,seek是从多少块后开始写真实数据 truncate命令 #创建一个10G大虚拟文件,真实大小是0 truncate -s 10G...10g.txt 文件大小有真实大小和虚拟大小,du命令计算出来大小是真实大小(du -sh *),ls看到是虚拟大小 参考 fallocate快速创建大文件

    7.5K50

    java如何获取一个对象大小

    但当一个系统内存有限,或者某块程序代码允许使用内存大小有限制,又或者设计一个缓存机制,当存储对象内存超过固定值之后写入磁盘做持久化等等,总之我们希望像写C一样,java也能有方法实现获取对象占用内存大小...How---java怎样获取对象所占内存大小 在回答这个问题之前,我们需要先了解java基础数据类型所占内存大小。...方式1---通过Instrumentation来获取 这种方法得到是Shallow Size,即遇到引用时,只计算引用长度,不计算所引用对象实际大小。...包绝对路径): -javaagent:E:/software/instrumentation-sizeof.jar 方式2---使用Unsafe来获取 关于Unsafe使用,后面我会专门开一个专题来详细讲述...我们再回过头来,看我们在通过代码获取对象所占内存大小之前预估值40。比我们实际算出来值多了8个字节。

    8K70

    【C 语言】文件操作 ( 使用 fread 和 fwrite 实现二进制文件拷贝 | stat 统计文件大小 | feof 判定文件结尾 )

    文章目录 一、stat 统计文件大小 二、feof 判定文件结尾 三、使用 fread 和 fwrite 实现二进制文件拷贝 一、stat 统计文件大小 ---- 统计文件大小 , 需要借助 stat...结构体 , 调用 stat 方法 , 将该结构体指针作为参数传入 , 文件大小会写出到 stat 结构体 _off_t st_size 成员中 ; = struct stat { _dev_t...文件大小 stat("D:/File/src.avi", &st); // 计算缓冲区文件大小 int buffer_size = st.st_size; 二、feof 判定文件结尾...feof(p_src)) { } 三、使用 fread 和 fwrite 实现二进制文件拷贝 ---- 代码示例 : #include #include <stdlib.h...= "D:/File/src.avi"; // 拷贝目标地址 char *dst_file = "D:/File/dst.avi"; // 以 可读 + 二进制 方式打开文件

    68810

    手机APP安装包缩减方案

    那么通过otool命令逆向__TEXT__cstring段来获取二进制文件中所有的字符串常量,并检查这些字符串常量是否匹配安装包中任意图片资源名(去除文件后缀,如@3x.jpg)。...删除无用方法 由于Objective-C动态性,它可以通过类名和方法名获取这个类和方法进行调用,所以编译器会把项目里所有OC源文件编进可执行文件里,哪怕该方法没有被使用到,删除这些无用方法必定能减少二进制文件大小...__objc_selrefs段获得被引用类方法 ③ 如上两个结果文件相减就是没有使用类方法 ④ 步骤3结果结合linkmap文件,可以获取每个类方法大小,并依据方法大小对类方法进行排序 ?...② 用脚本获取两个版本中文件大小差值 ③ 对步骤2中结果进行排序和具体分析 ?...使用方法:将安装包中二进制文件作为otool命令参数 二、LinkMap简介 LinkMap文件是Xcode产生可执行文件同时生成链接信息,用来描述可执行文件构造成分,包括代码段(__TEXT

    1.4K60

    Go语言 | 你还在这样获取文件大小吗?

    在项目中,我们可能会需要获取一个文件大小,在Golang(Go语言)中,有很多方法来获取一个文件大小,看看你是否还在用最慢方式。...ioutil方式 上面的代码比较啰嗦,这时候我们可能想到了使用ioutil包ReadFile来代替,直接获得文件内容,进而计算出文件大小。...获取文件信息 通过os.Stat方法,我们可以获取文件信息,比如文件大小、名字等。...所以我们对于文件信息获取使用os.Stat函数,它可以在不打开文件情况下,高效获取文件信息。...最后else可能性比较少,这个时候可以看下具体错误是什么,再根据错误来判断文件是否存在。 小结 os.Stat是一个非常好函数,可以让我们非常高效获取文件信息,所以在项目中尽可能使用它。

    2.2K10

    简述如何使用Androidstudio对文件进行保存和获取文件数据

    在 Android Studio 中,可以使用以下方法对文件进行保存和获取文件数据: 保存文件: 创建一个 File 对象,指定要保存文件路径和文件名。...使用 FileOutputStream 类创建一个文件输出流对象。 将需要保存数据写入文件输出流中。 关闭文件输出流。...使用 FileInputStream 类创建一个文件输入流对象。 创建一个字节数组,用于存储从文件中读取数据。 使用文件输入流 read() 方法读取文件数据,并将其存储到字节数组中。...System.out.println("文件数据:" + data); 需要注意是,上述代码中 getFilesDir() 方法用于获取应用程序内部存储目录,可以根据需要替换为其他存储路径。...这些是在 Android Studio 中保存和获取文件数据基本步骤。

    38210
    领券