【问题标题】:Create a new file with same perms and owner as an existing file创建一个与现有文件具有相同权限和所有者的新文件
【发布时间】:2012-11-19 14:06:31
【问题描述】:

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

这是为了将日志文件转走以进行压缩和转储存储。

目前我正在使用:

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

有没有更好的方法?

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

【问题讨论】:

    标签: shell unix solaris solaris-10


    【解决方案1】:

    我在 GNU 中这样做,我想它也可以在 Solaris 上工作:

    touch new_file && chmod --reference=old_file new_file
    

    【讨论】:

    • 我猜你也想chown --reference=old_file new_file 以满足OP的要求?
    • 感谢 Sahand 和 Celada 的建议,但不幸的是,此服务器无法安装任何 GNU fileutils。 (我已经用这个事实更新了我的问题)
    【解决方案2】:

    你需要做这样的事情:

    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 的。

    【讨论】:

      猜你喜欢
      • 2011-12-29
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 2014-04-15
      • 2016-03-04
      • 2019-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多