Atualmente, estou executando esses dois comandos para criar um backup rápido do diretório. Existe uma maneira de combinar os dois comandos em um, para que eu esteja copiando e renomeando o novo diretório em um comando?
#cp -R /tf/Custom_App /tf/Custom_App_backups/
#mv /tf/Custom_App_backups/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21
cp -R /tf/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21
Respostas:
Você deve ser capaz de fazer exatamente
No entanto , se o diretório de destino já existir, isso acrescentará a parte final do caminho de origem ao caminho de destino, criando
/tf/Custom_App_backups/Custom_App_2017-12-21/Custom_App
e copiando o restante da árvore dentro dele.Para evitar isso, use
/tf/Custom_App/.
como fonte. Obviamente, nesse caso, você pode quererrm -r /tf/Custom_App_backups/Custom_App_2017-12-21
primeiro, se não quiser arquivos mais antigos espalhados por aí após a cópia.A diferença entre
/some/dir
e/some/dir/.
foi discutido há algum tempo no cp se comporta estranhamente quando. (ponto) ou .. (ponto) são o diretório de origemfonte
.
como diretório de origem é usar o-T
sinalizadorcp
para substituir o destino em vez de criar um novo membro dentro dele.cp
./tf/Custom_app/.
truque é exatamente o que eu precisava.cp -a
também funciona.cp -a
obviamente também aparece no FreeBSD e no OpenBSD, mas ainda não é um recurso padrão, isto é, não especificado pelo POSIX . (cp -T
Que foi mencionado anteriormente parece um GNUism, não é em POSIX, e não nos BSDs, tanto quanto eu posso ver.)Como alternativa, você pode fazer o seguinte:
Isso permitirá que você especifique seu local personalizado com antecedência. Além disso, observe que ele usa o sufixo
/.
Isso permite copiar apenas o conteúdo e excluir a pasta que a contém - nesse caso, é aCustom_app
pasta.fonte