我正在创建一个bash脚本,必须创建子文件夹并将文件扩展到已安装的文件夹中。我的问题是我不能创建子文件夹作为ROOT,我需要在我的脚本中的命令:
su - UnknownUser -c "mkdir MAKEDir"
所以我的问题是,我怎样才能在执行
等命令时检索用户名ls -l
感谢您的任何意见!
答案 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