LINUX.ORG.RU

Как правильно переместить каталог с перезаписью

 


0

1

Иногда возникают вопросы, которые и задавать-то неудобно, типа столько лет в линуксе, а файл переместить не может. Но тем не менее...
Допустим нужно каталог /var/data/dir1/d000 переместить в /var/data/dir2, но каталог /var/data/dir2/d000 уже существует, то есть нужно выполнить перемещение с перезаписью. Если файлы в каталоге назначения имеют более позднюю дату, то перезаписывать не надо, просто удалить из исходного каталога. Каталог d000 содержит подкаталоги.

★★★★★

cp с каким-то ключом и rm -rf

d ★★★★
()

У mv простенькие аргументы на пару экранов, он с таким не справится. Я думаю нужно писать отдельную программу. Хотя, наверное и какой-то хитромудрый bash-скрипт сработает.

jhonathan
()
Ответ на: комментарий от sunny1983

У тебя в условии в любом случае каталог-источник перестает существовать. rsync'ни контент, потом удали источник.

YAR ★★★★★
()
Ответ на: комментарий от YAR

rsync’ни контент

Напомните опцию, чтоб не удалять файлы в цели, которых нет в источнике. Подзапамятовал, чортов склероз.

anonymous
()
Ответ на: комментарий от anonymous

А хз, сам не помню. Но если так посмотреть, «не удалять файлы в цели, которых нет в источнике» и, я так понимаю, перезаписать те, что есть в источнике - т.е., пунктик про удаление можно вообще откинуть - соответственно, просто не ставить всякие там --del и тому подобное.

YAR ★★★★★
()
Ответ на: комментарий от YAR

Короче я понял, мне нужно так:

rsync -a --update /var/data/dir1/d000 /var/data/dir2 && rm -R /var/data/dir1/d000
Одной командой не выйдет

sunny1983 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.