列出重新排序的ls列的命令在终端中工作,但不通过运行脚本?



我试图使一个脚本,将打印所有文件的信息在给定目录下的所有者,组,文件名,然后由逗号分隔的权限的顺序。我编写的代码在终端中运行时运行良好,但是当我尝试在一个目录为$1的脚本中运行它时,它只打印一次所有者名,没有其他内容。我忽略了什么?

代码如下:

ls -l | awk '{print $3, ",", $4, ",", $9, ", " $1}'

在终端中可以正常工作,但是

ls -l "$1" | awk '{print $3, ",", $4, ",", $9, ", " $1}'

run from $script.sh directoryname只输出一次用户名,仅此而已。

不要解析ls。使用stat代替

stat -c '%U,%G,%n,%A' "$1"/*

将目录名称放在输出中,因此您可能想要cd "$1"然后使用stat ... *


另一个选项:find

find "$1" -maxdepth 1 -type f -printf '%u,%g,%P,%Mn'

相关内容

  • 没有找到相关文章

最新更新