需要一个将单个文件复制到多个目录的脚本

时间:2016-12-05 14:20:12

标签: bash

我坚持使用这个脚本,并希望得到一些帮助!

我想创建一个名为“upload”的文件夹,其中包含一个脚本,可以将.jar文件从那里复制到多个目录(见下文)

/home/minecraft/multicraft/servers/EUSim1
/home/minecraft/multicraft/servers/EUSim2
/home/minecraft/multicraft/servers/EUSim3

等等。

2 个答案:

答案 0 :(得分:1)

非常简单的脚本: 如何使用

  1. touch simpleScript.sh
  2. vim simpleScript.sh
  3. 复制/粘贴下面的行
  4. 更新TRX_SOURCE_PATHDEST_PATHDEST_PATH1DEST_PATH2
  5. 保存
  6. chmod +x ./simpleScript.sh
  7. #!/bin/bash
    
    TRX_SOURCE_PATH='/Path/Test.pdf'
    DEST_PATH='/Path/Test'
    DEST_PATH1='/Path/Test1'
    DEST_PATH2='/Path/Test2'
    
    echo "Starting copy"
    echo "Destination:" $DEST_PATH
    cp $TRX_SOURCE_PATH $DEST_PATH
    
    echo "copy done for folder:" $DEST_PATH
    
    echo "Destination:" $DEST_PATH1
    cp $TRX_SOURCE_PATH $DEST_PATH1
    
    echo "copy done for folder:" $DEST_PATH1
    
    echo "Destination:" $DEST_PATH2
    cp $TRX_SOURCE_PATH $DEST_PATH2
    
    echo "copy done for folder:" $DEST_PATH2
    echo "All Copy done"
    

    希望这个脚本可以帮助你。

答案 1 :(得分:1)

快速脚本,供参考:

脚本

#!/bin/bash

inputfile=$1

for var in "$@"
do
    if [[ $2 == $3 ]];then
    exit 1
    fi    
    cp -v $inputfile $2
    shift
done

命令

./script simple.jar                                     \
 /home/minecraft/multicraft/servers/EUSim1/simple.jar   \
 /home/minecraft/multicraft/servers/EUSim2/simple.jar   \
 /home/minecraft/multicraft/servers/EUSim3/simple.jar   \

输出

 'simple.jar' -> '/home/minecraft/multicraft/servers/EUSim1/simple.jar'
 'simple.jar' -> '/home/minecraft/multicraft/servers/EUSim2/simple.jar'
 'simple.jar' -> '/home/minecraft/multicraft/servers/EUSim3/simple.jar'

这是一个简单的脚本。你可以做一些小调整并添加--prefix或让脚本从文件中读取输入。

(或) 将cp与xargs一起使用:

echo dir1 dir2 dir3 | xargs -n 1 cp file