LINUX.ORG.RU

MV и одинаковые файлы


0

1

Есть две папки tmp и tmp1
Перемещаю файлы из tmp в tmp1
cd /tmp
mv * /tmp1
И файлы которые имели одинаковые названия в папке tmp1 заменяются
файлами из tmp
Возможно ли при перемещение сделать так, что бы одинаковые файлы из
tmp не заменяли файлы в tmp1 а копировались в tmp1 и
переименовывались допустим в file.1, file.2....и т.д?



Если не писать скрипт, то из готового rsync с опцией backup

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

А если написать скрипт? То это как реализовать?

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

Проще написать тогда правило для logrotate, положить его куда-нибудь выше tmp1 и запускать

logrotate my_config

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от DELIRIUM

for i in `ls`

ты уверен, что понимаешь, что такое shell substitution?

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

правда стоит учесть, что и cp, и rsync, и mv с опцией --backup переименовывают файл из DEST, а не из SRC, а судя по первому сообщению - надо наоборот.

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

Работать будет, но не так как надо :-) Лучше вам самому начать разбиратся в скриптописании:

for f in * ; do
  if [ -f /tmp1/$f ] ; then
    cp $f /tmp1/$f.1 # Только здесь нужен цикл, для file.2....и т.д
  else
    mv $f /tmp1/
  fi
done

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

можно поменять DST и SRC местами и будет наоборот.

xydo ★★ ()

man mv
--backup[=CONTROL]
make a backup of each existing destination file

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

Но тогда ж и копировать будет не в ту папку

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

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

#!/bin/bash

zen@debian:~/tmp$ ls -1
1 1
2 2
3 3
zen@debian:~/tmp$ for i in `ls`
> do
> echo $i
> done
1
1
2
2
3
3

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

да, согласен, не прав, уже сам понял =). можно через find тогда.

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

что, такая большая разница между tmp и tmp1??

mv --backup=t tmp1 tmp
mv tmp tmp1

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

В общем случае они могут быть на разных файловых системах, причём /tmp может быть на tmpfs (относительно небольшой объём).

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