Em primeiro lugar, admito que sou novo nos sistemas baseados em UNIX, atualmente estou aprendendo na faculdade.
Estou tentando criar uma função que automatiza um backup de um arquivo existente para um diretório existente. No entanto, estou recebendo uma mensagem na CLI que cita:
cp: cannot create regular file '../Logs/bashmenu.22:52:28-06/12/2016.sh': No such file or directory
Eu fiz uma boa quantidade de auto-pesquisa, mas não consigo encontrar uma solução para o meu problema.
O caminho do diretório para o arquivo que contém a função, que eu quero fazer backup, é:
/Home/Scripts/bashmenu.sh
O caminho do diretório para o local no qual desejo fazer backup é:
/Home/Logs/TARGET
Ao fazer o backup do arquivo, gostaria que fosse uma data marcada. Então, usei algumas variáveis para obter a convenção de nomenclatura para o arquivo quando o backup foi feito. Acredito que é isso que está causando um problema. Eu não sei se isso causa um problema, mas o arquivo e os diretórios estão todos em um USB, eu apenas criei um caminho de diretório semelhante para ele.
Aqui está parte do meu script, as partes que acredito que fazem a diferença:
#### #!/bin/bash
fullname=`basename "$0"`
now=`date +"%H:%M:%S-%d/%m/%Y"`;
backupname="${fullname%.*}"".""$now.sh"
cp -v $fullname ../Logs/$backupname
Respostas:
O caractere separador de caminho
/
é estritamente proibido nos nomes de arquivos (imagine o inferno que seria desencadeado se não fosse assim!)Caso contrário ... os backticks para substituição de comando estão meio obsoletos, então eu mudei ... E ajustei sua cotação um pouco
Se você realmente deseja que o script se copie para o destino ...
Portanto, a função pode ser algo como
fonte