Comandos

São suportados os seguintes comandos:

  • cd
  • cp
  • rm
  • mkdir
  • echo

O comando cd

O comando CD pode ser utilizado para mudar o diretório corrente. Exemplo:

cd ../build

O comando cp

O comando CP pode ser utilizado para copiar arquivos e diretórios de um lugar para outro. Exemplos:

cp $(src.dir)/* source/

O exemplo acima copia todo o conteúdo da pasta referente a propriedade "src.dir" para a pasta "source".

cp -r $(src.dir)/*.h source/

O exemplo acima copia todos os arquivos com extensão .h contidos na pasta de "src" para pasta "source", mantendo a estrutura de diretórios da pasta de origem "src". O "-r" significa recursivo.

cp -r proj/src/**/math/*.h source/

O exemplo acima copia todos os arquivos com extensão .h contidos na pasta "proj/src" para pasta "source", mantendo a estrutura de diretórios após o src. Exemplo, o arquivo "proj/src/math/trigon/trigon.h" é copiado como alvo: "source/math/trigon/trigon.h

cp main.cpp source/main.cpp

Copia main.cpp para pasta source.

cp main.cpp source/

Copia main.cpp para pasta source.

cp main.cpp source/main2.cpp

Copia main.cpp para pasta source com o nome de cópia "main2.cpp".

cp -r src source

Se a pasta source existir, é copiada a pasta src para dentro dela. Caso contrário, a pasta src é copiada com nome "source". Exemplo, se "source" existir, o alvo é: "source/src". Se 'source" não existir, o alvo é: "source"

cp -r so*es.* sources/

O comando acima copia todos os arquivos da pasta corrente e derivadas cujo nome iniciar com "so" e finalizar com "es" e tiver qualquer extensão.

cp lib*.a sources/

O comando acima copia todos os arquivos da pasta atual (sem recursividade) que começarem com "lib" e tiverem extensão ".a", para pasta "sources".


O comando rm

O comando rm pode ser utilizado para remover arquivos e diretórios conforme os exemplos a seguir:

rm main.cpp

O comando acima remove o arquivo main.cpp

rm *

O comando acima remove todos os arquivos do diretório atual (sem recursividade). Logo, se houverem pastas não vazias, o comando retorna uma mensagem sobre não ter sido possível completar a remoção.

rm -r *

O comando acima remove todos os arquivos do diretório atual (recursivamente), incluindo pastas não vazias.

rm -r lib*

O comando acima remove todos os arquivos e diretórios do diretório atual (recursivamente), cujo nome começar com "lib".


O comando mkdir

O comando mkdir cria uma nova pasta ou todas as pastas do caminho se "-p" for informado como opção. Exemplos:

mkdir pasta

O comando acima cria a pasta "pasta" no diretório corrente.

mkdir -p /home/joao/projetos/projeto-cpp

O comando acima cria todos os subdiretórios, caso já não existam. Supondo que a pasta "projetos" não existe em "/home/joão", ela é criada e é criada dentro dela a pasta "projeto-cpp".


O comando echo

O comando echo exibe o texto passado como argumento para ele. Exemplos:

echo Hello World!
echo O diretório src tem o caminho: $(src.dir)

Coringas

Os coringas nos comandos de arquivos servem para incluir na operação arquivos, dado um filtro pelo nome do arquivo ou para substituir parte do caminho no caso do duplo coringa. Veja os exemplos abaixo:

rm -r dir/*

O exemplo acima remove todos os arquivos e pastas do diretório "dir"

rm -r dir/*.*

O exemplo acima remove todos os arquivos com qualquer extensão, excerto as pastas e arquivos sem extensão, do diretório "dir"

rm -r dir/lib*

O exemplo acima remove todos os arquivo e pastas do diretório "dir" que começarem com o prefixo "lib".

rm -r dir/*lib

O exemplo acima remove todos os arquivos e pastas cujo nome (não a extensão) terminar com "lib"

rm -r dir/*lib*

O comando acima remove todos os arquivos e pastas cujo nome começar com "lib", terminar com "lib" ou tiver "lib" no meio.

rm -r dir/*lib*.*

O comando acima remove todos os arquivos com qualquer extensão e cujo nome começar com "lib", terminar com "lib" ou tiver "lib" no meio. Não remove pastas nem arquivos sem extensão.

rm -r dir/lib*.txt

O comando acima remove todos os arquivos com extensão .txt que começarem com "lib" e estiverem dentro do diretório "dir".

Atenção: o foxmake ainda não suporta multiplas origens como no linux. Por exemplo, o seguinte exemplo não é válido:

rm a.txt b.bat pasta

Proxima aula

A próxima aula ensina sobre comandos.