Mover com possível renomeação

4

É possível construir um comando que mova o arquivo para outro diretório e, se o mesmo arquivo já estiver lá, gere uma string aleatória que não esteja no nome de algum arquivo no diretório e renomeie o arquivo para esse aleatório. string?

Eu conheço o comando mv -i , então faço isso manualmente e os arquivos contidos são renomeados para outra coisa.

obrigado

    
por xralf 03.11.2011 / 10:14

2 respostas

11
mv -b file destination/

deve fazer o truque.

mv --backup=TYPE

agirá como o tipo diz, é um dos seguintes:

none, off       never make backups (even if --backup is given)
numbered, t     make numbered backups
existing, nil   numbered if numbered backups exist, simple otherwise
simple, never   always make simple backups
    
por 03.11.2011 / 12:10
1

Não há um comando padrão ou comum de etapa única. Aqui está um processo de duas etapas, contando com o mktemp comum, não padrão, mas comum.

tmp=$(TMPDIR=$(dirname -- "$destination") mktemp -t)
mv -- "$source" "$tmp"
echo n | mv -i -- "$tmp" "$destination"
    
por 04.11.2011 / 00:07