Я хотел бы узнать об автоматизированном скрипте для копирования исходных файлов из каталога в несколько каталогов и после копирования файлов удалить исходные файлы из исходного каталога.
У нас есть одна папка, куда поступают файлы .xml. Поэтому на первом шаге я хотел скопировать эти файлы из этой исходной папки в две другие папки, то есть папку один и папку два. Папка один предназначена только для хранения файлов в качестве резервной копии, а папка два — для запуска другого скрипта для разделения файлов xml в соответствии с нашими требованиями. После копирования файлов удалите файлы из исходной папки.
С уважением
решение1
Следующий скрипт bash будет отслеживать исходный каталог на предмет входящих новых файлов (т.е. он не будет копировать или удалять какие-либо уже существующие файлы.) и скопируйте их в два целевых каталога, а затем удалите их... Вам нужно запустить скрипт и оставить его работать, прежде чем вы начнете получать какие-либо новые файлы в исходном каталоге(т.е. скрипт будет перехватывать новые входящие файлы только если он уже запущен) ... Скрипт используетinotifywait
который вам необходимо установить в первую очередь с помощью sudo apt install inotify-tools
... Пожалуйста, прочитайте комментарии в скрипте и сначала укажите пути:
#!/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
решение2
Используйте cp
N-1 раз и, наконец, используйте mv
N-й раз.
cp [files] [folder1]
cp [files] [folder2]
...
cp [files] [folderN-1]
mv [files] [folderN]