我试图将版本号添加到目录中的所有javascript文件中,这样用户就不会缓存对文件的更改。
如何移动一个目录中多个目录中的所有Javascript文件?
使用示例文件结构:
js/
--home/
----main.js
--apps/
----main.js
--handlers.js
--ajax.js我想做一些类似git mv -r js/*.js js/*.1.js的事情,将一个.1附加到文件名中。显然,对于git没有递归标志,所以我想知道我的选项是做类似的事情。
发布于 2014-03-25 01:40:44
环球星 (bash >=4)
shopt -s globstar # Set the SHell OPTion globstar
for f in **/*.js; do
git mv "$f" "${f%.js}.$version.js"
done要将所有内容移动到一个目录中:
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)。
find . -iname '*.js' -exec sh -c 'for f; do
git mv "$f" "${f%.js}.$version.js"
done' _ {} +https://stackoverflow.com/questions/22623921
复制相似问题