Autor Tópico: Será este o melhor script?  (Lida 5032 vezes)

Offline dlencastre

  • Usuário Ubuntu
  • *
  • Mensagens: 7
    • Ver perfil
Será este o melhor script?
« Online: 22 de Julho de 2012, 17:50 »
Boas,
Preciso da vossa ajuda.

Sou um novato do linux e por isso há muita coisa que não sei.

Necessito de uma sequência de comandos que copie o ficheiro exame para um novo ficheiro sist_oper no directório user e elimine o ficheiro a



será este o melhor? ou o mais simples?
cp /etc/exame /home/user/sist_oper
rm /home/user/a

obrigado

Offline Tota

  • Usuário Ubuntu
  • *
  • Mensagens: 14.982
    • Ver perfil
Re: Será este o melhor script?
« Resposta #1 Online: 23 de Julho de 2012, 09:22 »
Ola

Teria como postar o que já fez?

Isto evita ao forum "reinventar a roda". Além do fato de estimular aos outros usuarios a analisar sua abordagem.

[]'s

Offline raidicar

  • Usuário Ubuntu
  • *
  • Mensagens: 576
  • Quad Shot of Ubuntu
    • Ver perfil
Re: Será este o melhor script?
« Resposta #2 Online: 23 de Julho de 2012, 15:26 »
será este o melhor? ou o mais simples?
Sim, é o mais simples.

Para algo melhor e mais elaborado, vai da tua criatividade. Ex:
1 - Antes de copiar, verificar se o arquivo existe.
2 - Antes de remover, verificar se o arquivo existe.
3 - Depois de copiar, verificar e exibir uma mensagem na tela se a cópia foi bem sucedida.
4 - Antes de remover, perguntar se a pessoa deseja mesmo fazer isso.
5 - Pode pedir que o usuário insira o caminho e o arquivo que será removido.
etc...

if [ -e /etc/exame ]; then cp /etc/exame /home/user/sist_oper; else clear;echo "Erro ao Copiar: Arquivo Nao Existe."; fi
if [ -e /home/user/a ]; then rm -f /home/user/a; else clear;echo "Erro ao Remover: Arquivo Nao Existe."; fi

De qualquer forma, da maneira mais simples, são mesmo apenas essas duas linhas de comando, cp e rm.
Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Será este o melhor script?
« Resposta #3 Online: 24 de Julho de 2012, 17:28 »
Tá errado. Olhe com atenção

Citar
Necessito de uma sequência de comandos que copie o ficheiro exame para um novo ficheiro sist_oper no directório user e elimine o ficheiro a

Você pode testar isso facilmente, mas qualquer dúvida, fale.

Offline raidicar

  • Usuário Ubuntu
  • *
  • Mensagens: 576
  • Quad Shot of Ubuntu
    • Ver perfil
Re: Será este o melhor script?
« Resposta #4 Online: 24 de Julho de 2012, 19:34 »
Tá errado...

Onde?
cp /etc/exame /home/user/sist_oper #copia o ficheiro exame para um novo ficheiro sist_oper
rm /home/user/a #elimina o ficheiro a
Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

Offline Tucotuco

  • Usuário Ubuntu
  • *
  • Mensagens: 2
    • Ver perfil
Re: Será este o melhor script?
« Resposta #5 Online: 26 de Julho de 2012, 06:49 »
Nao seria melhor utilizar o comando mv? Assim copia e apaga da directoria original
"Maria Lisboa, cidade mulher da minha vida"

Offline raidicar

  • Usuário Ubuntu
  • *
  • Mensagens: 576
  • Quad Shot of Ubuntu
    • Ver perfil
Re: Será este o melhor script?
« Resposta #6 Online: 26 de Julho de 2012, 12:16 »
Nao seria melhor utilizar o comando mv? Assim copia e apaga da directoria original
Parece que não, já que o arquivo que ele quer apagar (a) não é o arquivo que ele está copiando (exame), ao menos foi isso o que eu entendi pelo desenho! rsrsrs
Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.

Offline sigur

  • Usuário Ubuntu
  • *
  • Mensagens: 1.176
    • Ver perfil
Re: Será este o melhor script?
« Resposta #7 Online: 26 de Julho de 2012, 17:41 »
Tá errado. Olhe com atenção

Citar
Necessito de uma sequência de comandos que copie o ficheiro exame para um novo ficheiro sist_oper no directório user e elimine o ficheiro a

Você pode testar isso facilmente, mas qualquer dúvida, fale.

Opa, tire a curiosidade aqui, mostre onde está o erro. Será que o problema está no fato de não termos a garantia de que o ficheiro é novo?

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Será este o melhor script?
« Resposta #8 Online: 26 de Julho de 2012, 18:51 »
"sist_oper" não existe na imagem, o ficheiro precisa ser criado antes. A não ser que a intenção seja uma cópia com o nome "sist_oper".

Offline sigur

  • Usuário Ubuntu
  • *
  • Mensagens: 1.176
    • Ver perfil
Re: Será este o melhor script?
« Resposta #9 Online: 27 de Julho de 2012, 10:18 »
"sist_oper" não existe na imagem, o ficheiro precisa ser criado antes. A não ser que a intenção seja uma cópia com o nome "sist_oper".

Hum, então é mais ou menos o que pensei.

Quer dizer que, se o ficheiro já existe, independente do tipo de ficheiro, o comando faria com que esse ficheiro passasse a ser o copiado?

Agora, se não existe esse ficheiro, o comando faria uma cópia apenas com o nome sendo trocado?

Interessante.

Offline raidicar

  • Usuário Ubuntu
  • *
  • Mensagens: 576
  • Quad Shot of Ubuntu
    • Ver perfil
Re: Será este o melhor script?
« Resposta #10 Online: 27 de Julho de 2012, 11:00 »
"sist_oper" não existe na imagem, o ficheiro precisa ser criado antes. A não ser que a intenção seja uma cópia com o nome "sist_oper".

Para uma cópia, não seria necessário apenas verificar se o ficheiro de origem existe e se o caminho de destino existe?
if [ -e /etc/exame ]; then cp /etc/exame /home/user/sist_oper; else clear;echo "Erro ao Copiar: Arquivo Nao Existe."; fi
Se o ficheiro exame existe, será copiado para /home/user/sist_oper, quer o ficheiro sist_oper exista ou não.
Se existe, será substituído.
Se não existe, será criado o ficheiro com esse nome.
Não entendi por que criar um ficheiro no destino para depois copiar um um ficheiro substituirá o ficheiro criado no destino.
Não entendi de que forma a pré-existência de sist_oper pode alterar de alguma forma o resultado do cp. Salvo que será solicitado confirmação para a substituição...
Acho que eu fiquei meio perdido... De novo rsrsrs. Tem acontecido muito isso nessa semana...

Agora, se não existe esse ficheiro, o comando faria uma cópia apenas com o nome sendo trocado?
Exato, Se não existe, será criado uma cópia do ficheiro, apenas trocando o nome.
Se existe, será substituído. Então, também podemos dizer que será criado uma cópia do ficheiro, apenas trocando o nome.
No final, o resultado será o mesmo, quer o ficheiro sist_oper exista ou não.
Quem ama extremamente, deixa de viver em si e vive no que ama. Na vida três coisas são certas, o amor, a morte e o Linux !
Se Platão disse, então realmente sofremos de uma perigosa doença mental.