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 copie e renomeie 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
Você deve ser capaz de fazer apenas
No entanto , se o diretório de destino já existir, isso anexaria a parte final do caminho de origem ao caminho de destino, criando
/tf/Custom_App_backups/Custom_App_2017-12-21/Custom_App
e, em seguida, copiaria o restante da árvore dentro dele.Para evitar isso, use
/tf/Custom_App/.
como fonte. É claro que, nesse caso, você pode quererrm -r /tf/Custom_App_backups/Custom_App_2017-12-21
primeiro, se não quiser arquivos mais antigos por aí depois da cópia.A diferença entre
/some/dir
e/some/dir/.
foi discutida há algum tempo em cp se comporta de maneira estranha quando . (ponto) ou .. (ponto ponto) são o diretório de origemAlternativamente, você pode fazer assim:
Isso permitirá que você especifique seu local personalizado de antemão. Além disso, observe que ele usa o sufixo
/.
This permite que você apenas copie o conteúdo e exclua a pasta que o contém - neste caso, é aCustom_app
pasta.Me deparei com esta página procurando o mesmo conselho. No meu sistema Ubuntu 20.04 (Focal Fossa), tentei este comando e usei a mesma sintaxe que @ilkkachu apresentou. Exceto que adicionei uma barra final à minha pasta dest, por exemplo, dest/ . O resultado copiou a pasta de origem mais seus irmãos! Quando tentei novamente sem a barra final, obtive o resultado desejado.
Portanto, para referência futura, esteja ciente de que adicionar uma barra final à pasta dest também copiará os irmãos de origem (pelo menos, essa foi a MINHA experiência)
Você pode prosseguir facilmente criando seu diretório de destino:
O último comando copiará todos os seus arquivos relevantes em um diretório recém-criado.