使用与现有文件相同的权限和所有者创建新文件

时间:2012-11-19 14:06:32

标签: shell unix solaris solaris-10

创建与Solaris / bin / sh shell脚本的现有文件具有相同所有权和权限的新空文件的最佳方法是什么?

这用于旋转日志文件以进行压缩和转储存储。

目前我正在使用:

mv log log_ts && cp -p log_ts log && cp /dev/null log

有更好的方法吗?

更新:不幸的是,这是在一个保守构建的实时Sol10服务器上,没有可用的gnu文件。

2 个答案:

答案 0 :(得分:2)

我在GNU中这样做,我想它也适用于Solaris:

touch new_file && chmod --reference=old_file new_file

答案 1 :(得分:1)

你需要做这样的事情:

PERM=`ls -l $EXISTING | cut -d" " -f1 | cut -c2- `
PERMU=`echo $PERM |cut -c1-3 | sed s/-//g`
PERMG=`echo $PERM |cut -c4-6 | sed s/-//g`
PERMO=`echo $PERM |cut -c7-9 | sed s/-//g`
chmod u="$PERMU" $TARGET
chmod g="$PERMG" $TARGET
chmod o="$PERMO" $TARGET

当然这适用于Solaris。