将文件放入文件并更改权限

我必须做一个bash脚本: 我有一个目录,我正在读取目录中的所有文件,并且我必须find组中的成员没有权限的文件,毕竟我有这些文件将其写入另一个文件并将写权(w)设置给组(g)的成员。

我想出了如何find文件的成员没有权利,但我不知道如何将文件放入另一个文件,并将写作权设置为组的成员。 有人可以帮我吗?

我写echo `find $1 ! -perm /g=rwx` echo `find $1 ! -perm /g=rwx`来查看文件是否正确。

 #!/bin/bash if [ $# -eq 0 ] then echo "Nu exista parametri" exit 1 fi if [ ! -d $1 ] then echo "It's not a directory" #Check if the parameter is a directory exit 1 fi echo `find $1 ! -perm /g=rwx` 

如果通过将文件放到另一个文件中意味着将其复制,可以这样做:

 cp source-file target-file 

然后你可以改变拥有组

 chgrp your-group target-file 

如果仍然有必要的话,你可以为该组添加写入权限

 chmod g+w target-file 

对于文档运行

 man cp man chgrp man chmod 

@afdggfh甜菜我,但一个完整的解决方案可能是这样的:

 files=$(find $dir ! -perm /g=rwx) for file in $files; do trg=$trgdir/$(basename $file) cp $file $trg; chmod g+w $trg; done; 

—————-编辑————-

或者,您可以添加和-exec参数来查找。 这个参数允许你执行一个命令。 在这种情况下, {}代表找到的文件名,而\; 代表exec命令的结尾:

 find $dir ! -perm /g=rwx -exec cp {} $trgdir \; -exec chmod g+w {} \; 

此解决方案适用于所有文件名(包括空格,星号和换行符)。