仅检索拥有文件夹的用户的名称

时间:2013-11-12 19:09:46

标签: bash shell unix

我正在创建一个bash脚本,必须创建子文件夹并将文件扩展到已安装的文件夹中。我的问题是我不能创建子文件夹作为ROOT,我需要在我的脚本中的命令:

su - UnknownUser -c "mkdir MAKEDir"

所以我的问题是,我怎样才能在执行

等命令时检索用户名
ls -l

感谢您的任何意见!

4 个答案:

答案 0 :(得分:4)

使用格式为%U的stat -c作为所有者的文本名称,或使用%u作为所有者的uid(或%G /%g作为组)

stat -c %U <filename>

答案 1 :(得分:4)

stat命令因实现而异,但以下内容可行

# GNU stat
# -c may be used in place of --format
$ stat --format %U file.ext

# BSD (Mac OS X, anyway) stat
$ stat -f %Su file.ext

答案 2 :(得分:0)

使用awk:

对于文件foo的用户: ls -l foo | awk'{print $ 3}'

或者,对于用户和文件名一起: ls -l | awk'{print $ 3,$ 9}'

答案 3 :(得分:0)

如果“parent”是父目录......

user=$(ls -ld ${parent} | awk '{print $3}')
sudo -u $user mkdir ${parent}/child1
sudo -u $user mkdir ${parent}/child2
sudo -u $user mkdir ${parent}/child1/grandchild1
sudo -u $user mkdir ${parent}/child1/grandchild2
相关问题