我想自动更改复制到目录的文件的权限。例如,复制到文件夹 X 的任何文件都应具有模式 755,复制到文件夹 Y 的任何文件都应具有模式 700。
请指教,谢谢!
答案1
您可以使用umask
这个来找出模式,这样做:
7777 -umask = 新权限
例如(Linux):
777 -022 755
umask 为 022,文件夹的权限为 755,文件的权限为 644。将类似以下内容放入umask 0027
~/.profile 中,以便每次登录时加载。
更新(由于怀疑论者的评论):
$ umask
0077
$ ll
total 0
-rw-rw-rw- 1 jaroslav jaroslav 0 Nov 9 20:26 00
-rw-rw-rw- 1 jaroslav jaroslav 0 Nov 9 20:26 01
-rw-rw-rw- 1 jaroslav jaroslav 0 Nov 9 20:26 02
-rw-rw-rw- 1 jaroslav jaroslav 0 Nov 9 20:26 03
$ rm -rf ../copies/*; \
/bin/cp --no-preserve=mode,ownership * ../copies/; ll ../copies/
total 0
-rw------- 1 jaroslav jaroslav 0 Nov 9 20:33 00
-rw------- 1 jaroslav jaroslav 0 Nov 9 20:33 01
-rw------- 1 jaroslav jaroslav 0 Nov 9 20:33 02
-rw------- 1 jaroslav jaroslav 0 Nov 9 20:33 03
答案2
我认为使用标准 unix 权限不可能逐个目录地执行此操作。但是,ACL 可以做到这一点。