Script Bash para mover arquivos


11

Sou iniciante e preciso de ajuda.

Estou tentando criar um script para mover alguns arquivos de um diretório em outro diretório. Antes de criar o script, testei o comando e ele estava funcionando:

mv /path/to/source  /path/to/destination

Depois de criar o script com nano:

#!bin/bash/
echo "mv /path/to/source  /path/to/destination"

Eu fiz o script executável com: chmod +x file e, em seguida, executei como, ./filemas o seguinte erro aparece:

bash: ./move.sh: /bin/bash/: bad interpreter: Not a directory

Eu tentei e com sudo ./filee bash arquivo, mas não está funcionando.

Estou usando o Ubuntu instalado com o VirtualBox.


Você deve dar uma olhada no Advanced Bash-Scripting Guide .
LiveWireBT

Respostas:


20

Isso porque você usou #!bin/bash/e isso está errado. O caminho certo é:

#!/bin/bash

Isso é chamado de shebang e informa ao shell com qual programa interpretar o script, quando executado.

Outra coisa: o caminho absoluto para o intérprete do bash no Ubuntu é /bin/bash, não bin/bash/ou algo mais. Você pode verificar isso usando o which bashcomando

E outra coisa, mas provavelmente você sabe disso: a seguinte linha:

echo "mv /path/to/source /path/to/destination"

exibirá apenas uma mensagem de texto com mv /path/to/source /path/to/destination. Para realmente mover arquivos, use o seguinte script:

#!/bin/bash
mv /path/to/source /path/to/destination

É assim que seu script deve ficar.


1
fyi, o Ubuntu historicamente empacotou uma versão ruim do whichcomando incrivelmente útil . Vale a pena a instalação manual para obter o gnu which .
djeikyb
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.