0

我正在制作一个 bash 脚本,它必须创建子文件夹并将文件展开到已安装的文件夹中。我的问题是我无法将子文件夹创建为 ROOT,我需要将脚本中的命令设置为:

su - UnknownUser -c "mkdir MAKEDir"

所以我的问题是,我怎样才能在执行命令时只检索用户名

ls -l

感谢您的任何意见!

4

4 回答 4

4

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

stat -c %U <filename>
于 2013-11-12T19:18:18.003 回答
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
于 2013-11-12T19:18:27.383 回答
0

使用 awk:

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

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

于 2013-11-12T19:17:21.173 回答
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
于 2013-11-13T03:41:10.983 回答