如何在一个命令中找出一个文件有多少位?

Fel*_*ipe 9 command-line shell filesystems bash files

我知道我可以用它ls -lat来找出一个文件有多少字节,然后乘以 8 来找出有多少位。但这仅在一个命令行中可行吗?

小智 16

使用 GNU du

du -b FILE | awk '{ print $1 * 8 }'
Run Code Online (Sandbox Code Playgroud)

  • 除了它不需要`bc` - `awk` 可以自己做数学:`du -b FILE | awk '{print $1 * 8}` (10认同)

Joh*_*024 5

一个 shell + GNU coreutils 解决方案:

echo $(( 8 * $(stat -c%s FILE) ))
Run Code Online (Sandbox Code Playgroud)

仅返回文件大小(以字节为单位)的-c%s选项stat,无需额外的文本处理。GNU coreutils 支持此语法,因此应该可以在大多数 linux 发行版下使用。

作为 linux 上的一个例外,如果使用可选的 zsh/stat 模块运行 zsh,则需要指定获取 GNU coreutils 的路径:

echo $(( 8 * $(command stat -c%s FILE) ))
Run Code Online (Sandbox Code Playgroud)