Propósito de cp -x (ficar no sistema de arquivos)?

24

Se eu quisesse ficar no mesmo sistema de arquivos, não poderia simplesmente especificar um caminho de saída para o mesmo sistema de arquivos?

Ou é para impedir a saída acidental do sistema de arquivos atual?

    
por neverMind9 28.11.2018 / 14:02

2 respostas

57

Ele limita onde os arquivos são copiados de , não para onde eles são copiados. É útil, com cópias recursivas, controlar como cp desce em subdiretórios. Assim

cp -xr / blah

copiará apenas o sistema de arquivos raiz, e não qualquer outro sistema de arquivos montado.

Veja o cp -x documentation (embora sua distinção seja sutil).

    
por 28.11.2018 / 14:06
26

O -x flag para cp é uma extensão do GNU. Ao copiar um único arquivo, esta opção não terá efeito, mas ao copiar toda a hierarquia de arquivos, a opção -x impede a cópia de arquivos e diretórios que não residem no mesmo sistema de arquivos que a fonte original.

Por exemplo, em um sistema de arquivos com pontos de montagem em /usr e /usr/local , usar cp -xR /usr /some-dest não copia a hierarquia em /usr/local .

Existem outros utilitários com uma opção -x com semântica semelhante, como du e find (o sinalizador é denominado -xdev para find ) e rsync .

    
por 28.11.2018 / 14:08