Cp (Unix): diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Rodorgas (discussão | contribs)
Adiciona seção História
Rodorgas (discussão | contribs)
Reformata flags de opções e mantém as que são compatíveis tanto com GNU quanto POSIX
Linha 35:
 
== Uso ==
Copiando arquivo(s) para outro arquivo:
Em geral é usado da seguinte maneira:
cp [-H | -L | -P] [-fi | -n] [-apvXc] arquivo_origem arquivo_destino
 
Copiando arquivo(s) para um diretório:
<code>cp [parâmetros] origem destino</code>
cp [-H | -L | -P] [-fi | -n] [-apvXc] arquivo_origem ... diretorio_destino
 
Copiando um diretório para um diretório (-r ou -R deve ser usado)
Onde:
cp -r|-R [-H | -L | -P] [-fi | -n] [-apvXc] diretorio_origem ... diretorio_destino
* ''origem'' pode ser um arquivo do diretório atual, um caminho e o nome de um arquivo ou um diretório do qual todos os arquivos contidos serão origem. Podem ser usados caracteres curinga para copiar mais de um arquivo de uma forma mais restrita.
 
== Flags de opções ==
* ''destino'' é um nome de arquivo que será atribuído para o arquivo destino. Se o arquivo destino ficará em outro diretório, é necessário especificar o caminho. Se o nome de arquivo será mantido, basta especificar o diretório. Caso seja necessário especificar o diretório local, digite um ponto, pois ele representa o diretório atual.
* ''i'' (interativo) – faz uma confirmação antes de copiar um arquivo que iria sobrescrever outro arquivo. Se o usuário digitar ''<code>y</code>'' (ou ''<code>s</code>'' dependendo da regionalização do sistema), o comando ''<code>cp</code>'' continua.
* ''f'' (forçar) – se o arquivo não puder ser aberto, remove e cria um novo arquivo, sem pedir confirmação.
* '''-r''' que(recursivo) – copia [[recursão|recursivamente]] os arquivos contidos dentro dos subdiretórios da origem.
* '''-p''' que(preservar) – preserva os atributos (dono, data, hora, permissões) do arquivo de origem no arquivo de destino, como dono, data, hora, permissões.
* ''v'' (verboso) – mostra qual arquivo está sendo copiado no momento.
* ''r ou R'' (recursivo) – copia diretórios recursivamente.
 
O arquivo de origem e o destino da cópia podem residir em [[sistema de arquivo|sistemas de arquivo]] diferentes, ou até no mesmo [[diretório (informática)|diretório]] desde que tenham nomes diferentes. Este comando copia também mais de um arquivo de um diretório para outro. É necessário ter permissão de escrita no destino da cópia.<ref name="Burtch">{{Ref-livro|sobrenome=Burtch|nome=Ken O.|título=Scripts de Shell Linux com Bash|editor=Ciência Moderna|edição=1|local=Rio de Janeiro|publicação=2005|páginas=522|id=8573934050}}</ref>
Há vários parâmetros que alteram o modo como cp funciona. Entre eles podemos citar:<ref name="Burtch" />
 
=== Exemplos práticos ===
* '''-i''' que torna o comando interativo, perguntando antes de sobrescrever um arquivo.
Cria uma cópia de um arquivo no diretório atual:
* '''-f''' que remove o arquivo destino antes de copiá-lo caso não haja permissão para escrita.
<code>cp arquivo.txt arquivo.bak</code>
* '''-s''' que gera um [[link simbólico]] no destino ao invés de copiar o arquivo.
* '''-u''' que copia apenas se o arquivo destino não existir ou for mais velho que o que está sendo copiado.
* '''-r''' que copia [[recursão|recursivamente]] os arquivos contidos dentro dos subdiretórios da origem.
* '''-p''' que preserva os atributos (dono, data, hora, permissões) do arquivo de origem no arquivo de destino.
* '''-d''' que copia ligações simbólicas com ligações simbólicas no lugar de copiar os arquivos para as quais apontam, e preservam ligações fortes entre arquivos de origrem nas cópias.
* '''-v''' que mostra em detalhe o que esta acontecendo no momento; verbose.
 
Esse comando copia prog.c para prog.bak. Se o arquivo prog.bak já existir, ele será sobrescrito.
O arquivo de origem e o destino da cópia podem residir em [[sistema de arquivo|sistemas de arquivo]] diferentes, ou até no mesmo [[diretório (informática)|diretório]] desde que tenham nomes diferentes. Este comando copia também mais de um arquivo de um diretório para outro. É necessário ter permissão de escrita no destino da cópia.<ref name="Burtch">{{Ref-livro|sobrenome=Burtch|nome=Ken O.|título=Scripts de Shell Linux com Bash|editor=Ciência Moderna|edição=1|local=Rio de Janeiro|publicação=2005|páginas=522|id=8573934050}}</ref>
 
Copiar um diretório com seus conteúdos para outro:
<code>cp -R /home/user/projeto /home/user/novo_projeto</code>
 
Esse comando copia o diretório ''projeto'', com todos seus arquivos, subdiretórios e arquivos dos subdiretórios para o diretório ''novo_projeto''.
=== Exemplos práticos ===
<code>cp -a /home/usuario /backup/<br />
cp -i texto texto.bak
</code><br />
O parâmetro 'a' é o mesmo que -d.
O parâmetro 'i' de modo interativo.
 
{{referências|Notas e Referências}}