Solaris中的Bash copy verbose update

时间:2012-06-25 14:24:46

标签: bash solaris

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

复制命令是这样的:

cp -ruv $source $dest

不幸的是,我不知道如何在Solaris中实现复制详细和复制更新。有什么想法吗?

由于

3 个答案:

答案 0 :(得分:1)

不幸的是,Solaris下的cp没有该选项。 man solaris应该揭示这一点。

您是否习惯让脚本依赖于rsync

或者,如果可能,您可以安装coreutils包并使用GNU的cp。

答案 1 :(得分:0)

我自己也遇到了类似的问题,发现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

答案 2 :(得分:0)

要重新创建详细模式,可以将输出发送到控制端子(/dev/tty),而stdoout本身的tee输出通过{{ 1}}。

cp

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

在没有额外GNU utils的标准Solaris 10系统上进行了测试。