Bash复制文件并替换文件名中的字符串

时间:2015-06-10 18:30:21

标签: linux bash

我的名字中有一个带有SNAPSHOT的文件,我想将文件复制到新目的地。我不在该目录中工作,所以我将使用直接路径。我对bash命令不太好,所以这给了我一些麻烦。我觉得这应该是非常微不足道的。

这将被放入一个脚本,该脚本将复制数百个JAR文件,并将SNAPSHOT字符串附加到文件名。这是我一直在使用的东西,但如果我当前的工作目录不在那些罐子的树级别,那就给我带来了麻烦。

cp "${SRC_PATH}"/grid-start/target/grid-start-* "${INSTALLER_PATH}"/boot/$(ls "${SRC_PATH}"/grid-start/target/*SNAP* | sed "s/-SNAPSHOT//")

情景:

档案:/home/build/src/trunk/grid-start/target/grid-start-1.6-SNAPSHOT.jar

目的地:/home/build/installer/boot/grid-start-1.6.jar

谢谢!

1 个答案:

答案 0 :(得分:1)

我为你写了这个bash脚本。它应该达到其目的。

#!/bin/bash
#
# copier.sh

for f in $(find /home/build/ -name '*SNAPSHOT*');
do
    filename=${f##*/};
    filename=${filename/-SNAPSHOT};
    cp $f ./installer/$filename;
done

# EOF

用法:从/ home / build /运行copier.sh,它将复制(并删除-SNAPSHOT)到/home/build/installer/目录

它有点难看,但它做了它应该做的事情。