为 Solaris /bin/sh shell 脚本创建与现有文件具有相同所有权和权限的新空文件的最佳方法是什么?
这是为了旋转日志文件以进行压缩和转储存储。
目前我正在使用:
mv log log_ts && cp -p log_ts log && cp /dev/null log
有更好的方法吗?
更新:不幸的是,这是在保守构建的实时 Sol10 服务器上,没有可用的 gnu fileutils。
为 Solaris /bin/sh shell 脚本创建与现有文件具有相同所有权和权限的新空文件的最佳方法是什么?
这是为了旋转日志文件以进行压缩和转储存储。
目前我正在使用:
mv log log_ts && cp -p log_ts log && cp /dev/null log
有更好的方法吗?
更新:不幸的是,这是在保守构建的实时 Sol10 服务器上,没有可用的 gnu fileutils。
我在 GNU 中这样做,我想它也适用于 Solaris:
touch new_file && chmod --reference=old_file new_file
你需要做这样的事情:
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。