Solaris
如何在不支持 -u 選項的 Solaris 系統上使用 cp -u?
我只想在源文件比目標文件新或目標文件失去時複製。如您所知,此功能將在 Linux 系統上通過以下命令執行。
cp -u /source/*.txt /destination/
但是當我在solaris系統10上使用這個命令時。下面是我的輸出:
cp: illegal option -- u Usage: cp [-f] [-i] [-p] [-@] f1 f2 cp [-f] [-i] [-p] [-@] f1 ... fn d1 cp -r|-R [-H|-L|-P] [-f] [-i] [-p] [-@] d1 ... dn-1 dn
有什麼解決辦法嗎?
您可以使用
rsync -u
which 提供相同的功能。它在目前的 Solaris 發行版 (11.x) 和最新的 Solaris 10 版本 ( Oracle Solaris 10 1/13 ) 中可用。Solaris 10 的原始碼包含在可從此處下載的完整開原始碼包中(請注意,它是一個 1 GB 的文件)。
cp -u
是 GNU coreutils 的一個特性,它是非嵌入式 Linux 上的標準,但不是 Solaris。在 Solaris 或任何其他 POSIX 兼容系統¹上,您可以使用
pax
具有類似功能的 。該命令是 POSIX 對歷史和命令pax
的替代;在直通模式下,它類似於. 該選項類似於 GNU的選項(它們都從歷史存檔器中獲取它,例如和)。cpio``tar``cp -R``-u``cp``tar``ar
cd /source pax -rw -u *.txt /destination
(不是
pax -rw -u /source/*.txt /destination
,因為那會創建/destination/source/file.txt
)¹請注意,許多 Linux 發行版在預設安裝中忽略了 pax。但是,它始終作為一個包提供。