Meta de backup do Makefile

1

Objetivo: Estou tentando criar um alvo PHONY dentro do meu Makefile para que, quando eu executar o comando "fazer backup", Ele moverá todos os arquivos que terminam em "~" para a pasta de backup especificada.

Aqui está meu código atualmente e explicarei o problema depois: Sintaxe C ++ (Alternar Texto Simples)

.PHONY: backup
backup:
@mkdir -p ./backup/include #make folder (don't complain if it already exists)
@mkdir -p ./backup/src #make folder (don't complain if it already exists)
@mv -fu *.h~ ./backup/include #move header file backups into desired folder
@mv -fu *.cpp~ ./backup/src #move source file backups into desired folder

Problema: Isso funciona muito bem, MAS SOMENTE se um arquivo " .h ~" e " .cpp ~" já existir no diretório atual do Makefile. Eu gostaria que este alvo movesse os arquivos, se possível, e fique quieto se não houver arquivos para mover ...

Mensagem de erro: mv: não pode stat '* .h ~': Nenhum arquivo ou diretório

* Estou no linux (ubuntu) e assim meu shell é "bash"

Aprecie a ajuda, fiquei preso a noite toda tentando todos os tipos de comandos, desde instruções if até o comando "find". Apenas pensei em finalmente pedir ajuda

    
por Xploit 12.08.2011 / 05:06

1 resposta

1

Tente isto:

.PHONY: backup
backup:
@mkdir -p ./backup/include #make folder (don't complain if it already exists)
@mkdir -p ./backup/src #make folder (don't complain if it already exists)
@mv -fu *.h~ ./backup/include &> /dev/null #move header file backups into desired folder
@mv -fu *.cpp~ ./backup/src &> /dev/null #move source file backups into desired folder

O &>/dev/null deve redirecionar toda a saída do comando mv para /dev/null , que acaba com isso.

    
por 12.08.2011 / 05:18