使用“mv”移动文件时如何通过目录的 setgid 位应用组更改?

使用“mv”移动文件时如何通过目录的 setgid 位应用组更改?
$ mkdir test
$ chown gtgteq:users test
$ chmod g+s test
$ touch test/a
$ touch b
$ mv b test/
$ ls -l test
total 0
-rw-r--r-- 1 gtgteq users  0 a
-rw-r--r-- 1 gtgteq gtgteq 0 b

如何自动更改移动文件组( b)?

答案1

最终我写了bash函数。

mvs() {
  local dest
  if [[ $# -ne 2 ]]; then
    return 1
  fi
  if [[ -d $2 ]]; then
    dest="$2/$(basename $1)"
  else
    dest="$2"
  fi
  mv "$1" "$2" || return $?
  chown "$USER":users -R "$dest"
  chmod g+rw -R "$dest"
  find "$dest" -type d -exec chmod g+xs {} ';'
}

相关内容