小编Klo*_*rax的帖子

为什么 GNU Core Utilities stat(包括 du 和 ls)报告以下大小(GNU/Linux 中的 ext4)?

如果我在目录中有以下内容:

  • empty_dir: 空目录。
  • empty_file: 空的文件。
  • one_char: 由一个字符组成的文件。
  • several_blocks:由几个块组成的文件(但不是“太大”或“稀疏”)。

然后,ls将显示以下†:

$ ls -Gghs
total 152K
8,0K drwxr-xr-x 2 4,0K dec 21 23:34 empty_dir
4,0K -rw-r--r-- 1    0 dec 21 23:21 empty_file
8,0K -rw-r--r-- 1    1 dec 21 23:22 one_char
132K -rw-r--r-- 1 127K dec 22 00:14 several_blocks
Run Code Online (Sandbox Code Playgroud)

其次,stat显示以下内容:

$ stat empty_dir/
  File: empty_dir/
  Size: 4096            Blocks: 16         IO Block: 4096   directory
  ...

$ stat empty_file 
  File: empty_file
  Size: 0               Blocks: 8          IO Block: …
Run Code Online (Sandbox Code Playgroud)

ls filesystems disk-usage coreutils stat

6
推荐指数
1
解决办法
203
查看次数

哪种引用风格的 GNU Bash 变量定义(主要用于路径)?

对于GNU Bash变量,以下哪种引用样式是首选,为什么?

  1. 两个双引号: VAR="/path/$V1/path with space/$V2" .
  2. 多个双引号: VAR=/path/"$V1"/"path with space"/"$V2" .
  3. 组合: VAR="/path/"$V1"/path with space/"$V2""
  4. 其他

这里的首选意思是,在尽可能多的情况下按预期工作,而不会不必要地冗长,这样它就可以一致地使用而不会出现任何问题。如果有(罕见?)特殊情况,那么请将其限制为文件系统路径。

假设该path部分可以包含空格或特殊字符。对于2,这当然意味着这些path部分也需要引用。

基本上,这似乎可以归结为另一个问题:单独引用变量替换是否会做一些额外的事情?

如果这是真的,那么它将激发23(以避免必须path单独用空格引用每个部分)。如果不是,那么1似乎是首选,因为它是最简单的。

然而,在这里寻找例子,2是迄今为止最常见的,尽管作为一个特例VAR="$OTHER_VAR"/path/to/something

shell bash shell-script environment-variables quoting

0
推荐指数
1
解决办法
1575
查看次数