Moving files under Unix

English version below.
Em um sistema Unix, para copiar muitos arquivos de um diretório para outro (por exemplo, copiar todos os arquivos de uma partição inteira), o comando cp pode não ser o mais indicado: ele pode ter alguns problemas tratando arquivos incomuns, como por exemplo pipes e dispositivos. Nestes casos, o comando tar pode ser mais indicado.
Por exemplo, para copiar todo o conteúdo do diretório /usr e subdiretórios para /mnt :
cd /usr
tar cfp - ./* |(cd /mnt; tar xvfp -)

O parâmetro p garante que as permissões de arquivo serão copiadas e restauradas. Usar – como nome do arquivo faz com que o tar leia/escreva na entrada/saída padrão ao invés de um arquivo normal. Por fim, chamar o segundo comando dentro de () faz com que este seja executado dentro de um ‘subshell’, recebendo em sua entrada padrão a saída do comando anterior, repassada via pipe.
Retirado do artigo Move an Entire File System on a Live Unix System – OSNews.com


In a Unix system, to copy a large amount of files from one directory to another (say, copying all files in a partition), the cp command may not be the best option: it may have some problems handling uncommon files, like pipes and devices. In this case, the tar command can be a better option.
For example, to copy all files from /usr and subdirectories to /mnt :
cd /usr
tar cfp - ./* |(cd /mnt; tar xvfp -)

The parameter p tells tar to preserve the file permissions. Using – as the file name makes tar to read from standard input or write to standard output, instead of a normal file. And since the second command is being called inside (), it is being runned in a \’subshell\’, receiving in its standard input the output from the previous command, sent to it via pipe.
Taken from the article Move an Entire File System on a Live Unix System – OSNews.com

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *