shell 脚本 - 如何输出文件的所有者

shell 脚本 - 如何输出文件的所有者

是否有命令可以输出文件所有者,而不输出其他内容?我想我可以使用ls并运行它sed,但如果有更好的方法,我肯定会使用它。

答案1

stat -c %U file.txt

ls是一个用于以交互方式查看文件信息的工具。其输出格式为人性化格式,会导致脚本出现错误。使用globsfind代替. 了解原因:http://mywiki.wooledge.org/ParsingLs

答案2

我会使用这个功能:

lso() { ls -dl ${1:?usage: lso file} | awk '{print $3;exit}'; }

编辑:

  • 我考虑过stat,但我尽量避免使用任何非标准的东西。我坚持使用一些可移植的东西(即 POSIX),因为你的问题被标记为 linuxunix,不仅仅是 linux,它stat是相当标准的。

  • 由于这个问题引发了关于有效用户名的讨论,Unix 标准也将其定义为仅由以下列表中的字符组成的字符串:

ABCDEFGHIJKLMNOPQRSTUVWXYZ

abcdefghijklmnopqrstu vwxyz

0 1 2 3 4 5 6 7 8 9。 _ -

附加限制是连字符不能是第一个字符。

我假设没有允许任何空间。就像其他不可移植的东西一样,这不仅会导致我的小函数出现意外结果,还会导致许多 Unix/Linux CLI 实用程序出现意外结果。

相关内容