Arquivo da tag: Unix

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