"""
Requires python 3
Accepts name or id
Usage:
chown.py -p /temp/folder -u user -g group -r true
or
chown.py -p /temp/folder -u uid -g gid -r 1
user, group, and recursive are optional
But must supply at least one of user or group
Example: sudo chown.py -p /temp/filename -u some_user
"""
import argparse, os, sys
from shutil import chown
user = group = recursive = ''
parser=argparse.ArgumentParser()
parser.add_argument('-p', '--path')
parser.add_argument('-u', '--user')
parser.add_argument( '-g','--group')
parser.add_argument('-r', '--recursive', help=1)
args=parser.parse_args()
path = args.path
if not path:
raise Exception('missing path')
if args.user:
user = args.user
if args.group:
user = args.group
if args.recursive:
recursive = True
if not user and not group:
raise Exception('must supply user, group, or both')
def change_owner(path, user='', group='')
if user and not group:
chown(path, user=user)
elif not user and group:
chown(path, group=group)
else:
chown(path, user, group)
change_owner(path, user, group)
if recursive:
for dirpath, dirnames, filenames in os.walk(path):
for dname in dirnames:
change_owner(os.path.join(dirpath, dname), user, group)
for fname in filenames:
change_owner(os.path.join(dirpath, fname), user, group)
dirs
,因为os.walk
会遍历所有目录。参见我的答案。 - Christian Alisos.chown(path, 502, 20)
"偏离了意图","应该是一条注释",或者"值得为之新建一个完整的答案"。真的吗...?只有一行代码?所有这些人都不知道chmod -R some_dir
可以改变some_dir
和它所有的子目录吗?我知道你们都很害怕批准代码编辑,但是,这太荒谬了。 - jrh