Solaris中的Bash复制详细更新

Solaris中的Bash复制详细更新,bash,solaris,Bash,Solaris,我正在编写一些小的bash脚本,用于在GNU/Linux和Solaris中复制某些文件/目录。在Linux中一切正常,但cp命令在Linux和Solaris中没有相同的选项 复制命令如下所示: cp -ruv $source $dest 不幸的是,我不知道如何在Solaris中实现复制冗余和复制更新。有什么想法吗 谢谢不幸的是,Solaris下的cp没有该选项人solaris应该会揭示这一点 你是否愿意让你的脚本依赖于它 或者,如果可能的话,您可以安装该软件包并使用GNU的cp。我自己也遇到了

我正在编写一些小的bash脚本,用于在GNU/Linux和Solaris中复制某些文件/目录。在Linux中一切正常,但cp命令在Linux和Solaris中没有相同的选项

复制命令如下所示:

cp -ruv $source $dest
不幸的是,我不知道如何在Solaris中实现复制冗余和复制更新。有什么想法吗


谢谢

不幸的是,Solaris下的
cp
没有该选项<代码>人solaris应该会揭示这一点

你是否愿意让你的脚本依赖于它


或者,如果可能的话,您可以安装该软件包并使用GNU的cp。

我自己也遇到了类似的问题,发现gcp也解决了这个问题。我已将安装coreutils作为标准系统设置的一部分

我在新的Solaris安装上运行这些:

pkgadd -d http://get.opencsw.org/now
pkgutil -U
pkgutil -i -y coreutils
pkgutil -a vim
pkgutil -i -y vim
pkgutil -i -y findutils
请记住将路径和文档路径添加到您的配置文件中,并可能添加到位于/etc/profile的系统配置文件中:

# Set the program path
PATH=$PATH:/usr/sfw/bin:/usr/sfw/sbin:/usr/openwin/bin:/opt/csw/bin:/usr/ccs/bin:/usr/local/bin:/usr/local
export PATH

# Set the documentation path
MANPATH="$MANPATH:/usr/share/man:/opt/sfw/man:/opt/csw/man"
export MANPATH
听起来您可能是Solaris新手,因为我相对来说是新手。我也这样做,这不会影响任何事情

我将VIM设置为默认编辑器,而不是VI-它兼容,但有更多功能,包括ANSI颜色,一些终端模拟器将通过鼠标点击和滚动实现更大的灵活性:

# Set the default editor
EDITOR=vim
export EDITOR
然后,如果您仍在使用默认提示符,而该提示符没有显示任何内容,则可能需要添加一些信息-此版本需要Bash shell:

# Set the command prompt, which includes the username, host name, and the current path.
PS1='\u@\h:\w>'
export PS1

要重新创建详细模式,您可以将输出tee到控制终端(
/dev/tty
),而
tee
本身的
stdoout
输出通过
xargs
传递到
cp

find /some/source/directory -type f | \
  tee /dev/tty | xargs -I {} cp {} /copy/to/this-directory/
find
替换为您喜欢的任何内容,只要它通过管道将要复制的文件的路径传递到
tee


在标准Solaris 10系统上测试,无需额外的GNU UTIL。

谢谢您的回答。是的,我做的第一件事就是检查手册页。我不希望安装任何东西,也不希望使用默认工具找到解决方案。您的选择实际上是,使用不同的工具,或者执行更复杂的操作—解析
find
的输出并检查您是否应该自己复制该文件。