将库文件更新到Linux中的多个位置

时间:2016-12-28 12:00:23

标签: linux file versions

我有一个我经常从库中访问的库文件。例如/library/component.js但有时需要将其作为项目文件夹中的副本进行访问。例如。 .../someProject/library/component.js

我的问题是,如果我更新component.js的主版本,我希望更新许多项目版本。我不知道所有项目副本的位置,除了它们有一个根目录,供本次讨论使用/projects

算法是:

(1)在component.js的所有子目录中搜索/projects

(2)如果较新的话,用主文件更新

(其他构建和更新功能,如FTP不在范围内,但日志会很好。)

Q1:是否有一个可以实施的Linux实用程序?

Q2:有人可以推荐一个shell脚本吗?

(我可以做聪明的MS-DOS批处理脚本,但对于Linux命令行我是新手。)

2 个答案:

答案 0 :(得分:0)

如果您尝试更新的文件未经常创建和删除,则可以使用locate命令。

  

(1)在/ projects的所有子目录中搜索component.js. (使用 locate component.js

然后您可以使用 rsync 逐个更新这些文件。也许通过遍历locate命令的输出。

P.S。

如果您无法找到您的文件,只需运行" updatedb "命令一次。

答案 1 :(得分:0)

  

(1)在move <- function(data, cols, ref, side = c("before","after")){ if(! requireNamespace("dplyr")) stop("Make sure package 'dplyr' is installed to use function 'move'") side <- match.arg(side) cols <- rlang::enquo(cols) ref <- rlang::enquo(ref) if(side == "before") dplyr::select(data,1:!!ref,-!!ref,-!!cols,!!cols,dplyr::everything()) else dplyr::select(data,1:!!ref,-!!cols,!!cols,dplyr::everything()) } 的所有子目录中搜索component.js

     

(2)使用更新的主文件进行更新

     

(其他构建和更新功能(例如FTP不在此范围内,   但日志会很好。)

     

问题1:是否有Linux实用程序可以立即生效?

是的,它叫做find

/projects

对于日志,我们可以在find /projects -name component.js ! -newer /library/component.js -exec cp /library/component.js {} \; 之后添加选项-v并重定向输出。