我有一个我经常从库中访问的库文件。例如/library/component.js
但有时需要将其作为项目文件夹中的副本进行访问。例如。 .../someProject/library/component.js
我的问题是,如果我更新component.js
的主版本,我希望更新许多项目版本。我不知道所有项目副本的位置,除了它们有一个根目录,供本次讨论使用/projects
。
算法是:
(1)在component.js
的所有子目录中搜索/projects
。
(2)如果较新的话,用主文件更新
(其他构建和更新功能,如FTP不在范围内,但日志会很好。)
Q1:是否有一个可以实施的Linux实用程序?
Q2:有人可以推荐一个shell脚本吗?
(我可以做聪明的MS-DOS批处理脚本,但对于Linux命令行我是新手。)
答案 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
并重定向输出。