当前位置: 首页 > 面试题库 >

在shell中获取文件大小(以字节为单位)的可移植方式?

曾景龙
2023-03-14
问题内容

在Linux上,我使用stat --format="%s" FILE,但是我可以访问的Solaris没有stat命令。那我该怎么用呢?

我正在编写Bash脚本,无法在系统上真正安装任何新软件。

我已经考虑过使用:

perl -e '@x=stat(shift);print $x[7]' FILE

甚至:

ls -nl FILE | awk '{print $5}'

但是,这些看上去都不明智-运行Perl只是为了获取文件大小?还是运行2个命令来执行相同的操作?


问题答案:

wc -c < filename(字数的缩写,-c打印字节数)是一种便携式POSIX解决方案。在某些平台上,只有输出格式可能不统一,因为可能会预先加上一些空格(对于Solaris就是这种情况)。

不要忽略输入重定向。当文件作为参数传递时,文件名将在字节数之后打印。

我担心它不适用于二进制文件,但是在Linux和Solaris上都可以正常工作。您可以尝试使用wc -c < /usr/bin/wc。此外,除非另有明确说明,否则POSIX实用程序可确保处理二进制文件。



 类似资料:
  • 问题内容: 我知道您可以用来获取类型的大小。 例如: 但是,对于类实例(对象),返回对对象的引用的大小(在64位计算机上为8字节),而不是堆上实际对象的大小。 如何获得对象本身的大小? 对于那些想知道的人,我并没有真正的需要,我只是在探索Swift及其与C的互操作性。 问题答案: Apple平台 上的一种选择是使用Swift Obj-C运行时函数,因为Swift类当前是在其中建立的Objectiv

  • 问题描述 (Problem Description) 如何获取以字节为单位的文件大小? 解决方案 (Solution) 此示例显示如何使用File类的file.exists()和file.length()方法获取文件的大小(以字节为单位)。 import java.io.File; public class Main { public static long getFileSize(Stri

  • 问题内容: 我正在为门户网站进行房地产订阅,它告诉我字符串的最大长度应为20,000字节(20kb),但我从未遇到过。 我该如何测量尺寸。因此,我可以做一会儿循环来修剪它。 问题答案: 您必须确定字符串是ascii编码还是采用多字节格式编码。 在前一种情况下,您可以使用。 在后一种情况下,您需要找到每个字符的字节数。 strlen文档提供了如何执行此操作的示例:http : //www.php.n

  • 我正在用db.coll.find拿一份文件。我想得到文件的大小字节使用nodejs只有mongo本地driver.can可能吗?

  • 问题内容: 我创建了一个Servlet,它从客户端请求的任何给定字节位置开始返回流(来自MP3文件)。这样,客户端可以在任何给定的字节位置立即开始播放,而无需进行任何本地搜索。 现在,我有一个滑块,可以直观地看到进度。我正在使用当前字节位置来更新滑块。但是,我也想以秒为单位显示当前位置。 这要求服务器可以将以字节为单位的当前位置“转换”为以毫秒为单位的位置。然后,服务器可以只提供以毫秒为单位的流开