O comando cp -f * /var/www/ copia arquivos que correspondem a * no diretório atual do chamador, ou seja, seu diretório atual. É irrelevante onde o script está localizado.
Estou usando o Kali linux que é baseado no Debian e escrevi um script para copiar alguns arquivos de onde o script é baseado para um diretório especificado. Mas quando executo meu script (chamado CopyFiles.sh ), o comando cp funciona no diretório root , não no diretório atual. Aqui está o meu script:
#!/bin/bash
cp -f * /var/www/
Também tentei ./* mas o mesmo erro, mas se eu mudar de diretório para meus scripts ( cd comando) funciona bem. Eu posso usar o seguinte script sem problema, mas eu não quero usar nenhum comando adicional e quero saber porque meu script não funciona:
#!/bin/bash
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
cp -f "$SCRIPT_DIR/"* /var/www/
O comando cp -f * /var/www/ copia arquivos que correspondem a * no diretório atual do chamador, ou seja, seu diretório atual. É irrelevante onde o script está localizado.