首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Git递归mv文件

Git递归mv文件
EN

Stack Overflow用户
提问于 2014-03-25 01:38:15
回答 1查看 3.1K关注 0票数 1

我试图将版本号添加到目录中的所有javascript文件中,这样用户就不会缓存对文件的更改。

如何移动一个目录中多个目录中的所有Javascript文件?

使用示例文件结构:

代码语言:javascript
复制
js/
--home/
----main.js
--apps/
----main.js
--handlers.js
--ajax.js

我想做一些类似git mv -r js/*.js js/*.1.js的事情,将一个.1附加到文件名中。显然,对于git没有递归标志,所以我想知道我的选项是做类似的事情。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-25 01:40:44

环球星 (bash >=4)

代码语言:javascript
复制
shopt -s globstar # Set the SHell OPTion globstar
for f in **/*.js; do
  git mv "$f" "${f%.js}.$version.js"
done

要将所有内容移动到一个目录中:

代码语言:javascript
复制
for source in **/*.js; do
  dest="${source%.js}.$version.js"
  dest="$destination/${dest##*/}" # Strip off leading directories and prepend actual destination
  git mv "$source" "$dest"
done

发现

您可以使用find,但是它几乎是相同的,所以将其保存到需要Bash 3或POSIX sh可移植性的地方(例如OS)。

代码语言:javascript
复制
find . -iname '*.js' -exec sh -c 'for f; do
  git mv "$f" "${f%.js}.$version.js"
done' _ {} +
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22623921

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档