Как перенести файлы в linux грамотно?

Есть структура папок:
/home/odin/folder/
/home/dva/folder/
/home/tri/folder/
..

нужно по крону переносить появляющиеся в этих папках архивы в структуру
/media/odin/
/media/dva/
/media/tri/
..

Хочу выражение в одну строчку (или несколько строчек), знаю что, скорее всего, это можно сделать. Но не знаю как. В какую сторону копать?
  • Вопрос задан
  • 1181 просмотр
Решения вопроса 1
@Weidmann
Bash, цикл for:
ks@archpc:[~/tmp/move]: for i in `ls ./for/`; do mv ./for/$i ./to/; done
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 5
@maxxx_kovalenko
admin
Попробуй их синхронизировать с помощью rsync:
/usr/bin/rsync -Paz - /home/* /media
или только содержимой папок odin,dva,tri
/usr/bin/rsync -Paz - /home/{odin,dva,tri}/* /media/{odin,dva,tri}
Пустые папки без содержимого не синхронизируются.
Ответ написан
Denormalization
@Denormalization
find + -mtime + -exec + sed
Ответ написан
@azazelpw
Linux SA
Если не заморачиваться, то можно так.

mkdir /script
touch /script/copy.sh
chmod +x copy.sh
сам скрипт.
===============
#!/bin/bash
path2copy="/home"
path2paste="/media"
log="/var/log/"
echo `ls -la "$path2copy" |awk {'print $9'}` > /tmp/file.list
for i in `cat /tmp/file.list`
do
mv $path2copy/$i $path2paste/
done
======================
crontab -e
0 0 * * * /script/copy.sh
Ответ написан
Комментировать
leahch
@leahch Куратор тега Linux
3Д специалист. Долго, Дорого, Дерьмово.
Самое простое, если одна файловая система, то сделать
mount --bind
Ответ написан
Комментировать
@ShamblerR
насколько я понял ему нужна односоронняя синхронизация а для этого достаточно просто cp с добавлением нового.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы