1

I would like to know automated script for copying source files from directory to multiple directories and after copying files remove the source files from the source directory

We have one folder where the .xml files are coming. so on first step i wanted to copy these files from this source folder to another two folders i.e folder one and folder two. Folder one is for keeping the files as backup purpose only and folder two is to run another script for splitting xml files according to our requirement. After copying files remove the files from source folder

Regards

Raffa
  • 34,963
sunman
  • 43

2 Answers2

4

The following bash script will monitor the source directory for incoming new files(i.e. It will not copy or remove any preexisting files) and copy them to two destination directories then delete them afterwords ... You need to run the script and keep it running before you start receiving any new files in the source directory(i.e. The script will catch new incoming files only if it is already running) ... The script uses inotifywait that you need to install first with sudo apt install inotify-tools ... Please read the comments in the script and specify the paths first:

#!/bin/bash

Specify the full path to the source directory in the line below (keep the last "/").

source_d="/full/path/to/directory/"

Specify the fullpath to the first destination directory in the line below (keep the last "/").

destination_d1="/full/path/to/directory1/"

Specify the full path to the second destination directory in the line below (keep the last "/").

destination_d2="/full/path/to/directory2/"

inotifywait -m -q -e close_write "$source_d" |

while read -r path action file; do cp -- "$path$file" "$destination_d1$file" cp -- "$path$file" "$destination_d2$file" rm -- "$path$file" done

Raffa
  • 34,963
-1

Use cp N-1 times and finally use mv for the Nth time.

cp [files] [folder1] 
cp [files] [folder2]
...
cp [files] [folderN-1]
mv [files] [folderN]