Bash 在shell中读取文件权限并应用于其他文件

Bash 在shell中读取文件权限并应用于其他文件,bash,shell,Bash,Shell,我正在编写一个脚本,我想将给定文件的权限应用于另一个文件,因为两个文件的所有者相同。文件可能很大,因此使用 cp dest tmp rm dest cp source dest echo tmp > dest rm tmp 不是选项。您的chmod是否支持--reference选项?它正是你所需要的 FILE1="$HOME/.bashrc" FILE2="$HOME/.profile" FPERM=`stat -c "%a" "$FILE1"` chmod $FPERM "$FILE

我正在编写一个脚本,我想将给定文件的权限应用于另一个文件,因为两个文件的所有者相同。文件可能很大,因此使用

cp dest tmp
rm dest
cp source dest
echo tmp > dest
rm tmp

不是选项。

您的
chmod
是否支持
--reference
选项?它正是你所需要的

FILE1="$HOME/.bashrc"
FILE2="$HOME/.profile"

FPERM=`stat -c "%a" "$FILE1"`
chmod $FPERM "$FILE2"
注:如果还包括所有权:

FUID=`stat -c "%U" "$FILE1"`
FGID=`stat -c "%G" "$FILE1"`

chown $FUID:$FGID "$FILE2"

非常好,它在其他场景中也很有用。是的,它支持引用。谢谢!