我正在重新创建 unix shell 命令,目前正在执行 ls。我必须模仿 ls -l 显示权限、文件大小等。如果格式正确,则本机 ls -l 使每列保持对齐,如下所示:
-rw-r--r-- 1 matt matt 1474560 Apr 11 14:54 diskimage
drwxr-xr-x 2 matt matt 4096 Mar 25 15:31 Example
-rwxr-xr-x 1 matt matt 26375 Apr 12 14:24 final
-rwxr-xr-x 1 matt matt 75 Apr 11 14:39 log.sh
现在,我的 ls 版本几乎做同样的事情,除了当 printf() 函数中使用不同的值时我的列不对齐,如下所示:
drwxr-xr-x 0 1024 Dec 03 14:11 .
drwxr-xr-x 0 1024 Dec 03 14:11 ..
drwxr-xr-x 0 1024 Dec 03 13:57 Z
drwxr-xr-x 0 1024 Dec 03 14:11 X
drwxr-xr-x 0 1024 Dec 03 13:56 Y
-rw-r--r-- 0 334632 Dec 10 08:39 big
如您所见,最后一个条目未对齐,因为 size 列大于其余列。如何告诉 printf 函数以自动对齐列的格式化方式打印?