我正在制作一个 bash 脚本,它必须创建子文件夹并将文件展开到已安装的文件夹中。我的问题是我无法将子文件夹创建为 ROOT,我需要将脚本中的命令设置为:
su - UnknownUser -c "mkdir MAKEDir"
所以我的问题是,我怎样才能在执行命令时只检索用户名
ls -l
感谢您的任何意见!
使用 stat -c 格式为 %U 作为所有者的文本名称,或 %u 作为所有者的 uid(或 %G/%g 表示组)
stat -c %U <filename>
该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
使用 awk:
对于文件 foo 的用户:ls -l foo | awk '{打印 $3}'
或者,对于用户名和文件名:ls -l | awk '{打印 $3, $9 }'
如果“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