de qualquer maneira para mv um arquivo sem tocar links simbólicos

0

Minha motivação para fazer esta pergunta é a seguinte, um propósito de criar um link simbólico é economizar espaço, mas um simples comando mv para mover um diretório em outro lugar move tudo para o local de destino, tratando um link simbólico como um arquivo completo . Isso poderia consumir um espaço tremendamente grande, mas desnecessário, quando eu fizer backup dos meus arquivos. Minha pergunta é, existe uma maneira de mover apenas arquivos verdadeiros, mas deixar os links simbólicos como estão?

    
por bsmile 26.07.2016 / 07:25

3 respostas

1

Você pode usar rsync

rsync -l original_file backup_file

De man rsync

-l, --links copy symlinks as symlinks

Ou seja. você está copiando apenas o link e não o que ele aponta. Note que isto não está se movendo, mas copiando, mas eu assumi que é isso que você quis dizer para backups.

    
por 26.07.2016 / 16:05
0

Em vez de criar link simbólico , você pode criar um link físico . Se você mover o arquivo original para outro lugar ou excluí-lo, o link físico ainda funcionará. Mas existem algumas limitações , por exemplo, limitadas a arquivos, por isso não podem ser apontadas para diretórios. Em segundo lugar, os links podem ser criados apenas entre os arquivos incluídos no mesmo sistema de arquivos.

De qualquer forma, se você escolher usar links simbólicos depois de mover o arquivo de origem, você deve dar novamente o caminho completo para seus links, pois é apenas um ponteiro para outro nome de arquivo.

    
por 26.07.2016 / 17:20
0

Você pode usar o operador de teste do shell -L para testar se um arquivo é um link simbólico. Se você estiver usando algo como mv *.txt elsewhere/ para mover arquivos, poderá pular links simbólicos com um loop:

for x in *.txt; do
  if ! [ -L "$x" ]; then mv -- "$x" elsewhere/; fi
done

Como alternativa, você pode chamar find para agir em arquivos com base em seu tipo. Isso é mais útil quando você está percorrendo diretórios recursivamente. Observe que quando você passa um diretório para mv , ele move o diretório como um todo, o que indiretamente afeta todos os arquivos abaixo.

Não consigo ver o que isso tem a ver com "um espaço tremendamente grande, mas desnecessário" nos backups. Este tópico pode não ser relevante para seu problema real .

    
por 27.07.2016 / 00:56

Tags