Objetivo do cp -x (permanecer no sistema de arquivos)?


25

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

Ou é para evitar sair acidentalmente do sistema de arquivos atual?


11
-x em um contexto diferente: unix.stackexchange.com/a/358331/30851, mas o mesmo para cp: -x ignora as coisas, se você estiver migrando sistemas de arquivos e quiser que seja uma cópia completa, considere a montagem de uma maneira que permita você a imagem completa.
Frostschutz 28/11/19

11
Você pode perguntar o mesmo sobre muitos sinalizadores, por exemplo -i: "por que não apenas especificar um destino que não existe"?
JigglyNaga

11
@JigglyNaga Eu estava pensando isso também. Mas -x não foi bem formulado na documentação e muito menos óbvio.
neverMind9

Respostas:


59

Ela limita onde os arquivos são copiados a partir , não onde eles estão copiados. É útil com cópias recursivas, para controlar como cpdesce em subdiretórios. portanto

cp -xr / blah

copiará apenas o sistema de arquivos raiz, não nenhum dos outros sistemas de arquivos montados.

Consulte a cp -xdocumentação (embora sua distinção seja sutil).


3
Ah, sim, talvez você não queira copiar compartilhamentos de rede em / mnt. Nem um repositório RCS remoto montado em sua unidade doméstica.
Mckenzm

11
@mckenzm Também porque, /mntàs vezes, é apenas uma convenção humana aplicada pela configuração de uma distribuição, mas não um requisito do sistema operacional. Eu às vezes têm sistemas de arquivos de rede montada sob /var/somewebsite/www/sessionsa implementar balanceamento de carga servidores web
slebetman

Na verdade, esse tipo de sinalizador impede a cópia acidental de grandes compartilhamentos de rede ou mídias removíveis que você esqueceu de montar. E você não precisa dar --excludeopções para bloquear manualmente cada um deles. Muito útil com o rsync.
Lassi 29/11

3
Ele também evita os sistemas de arquivos de cópia, como /dev, /proc, /sysetc., que você normalmente não querem ler “en masse”.
Stephen Kitt

28

o -x sinalizador para cpé uma extensão GNU. Ao copiar um único arquivo, essa opção não terá efeito, mas ao copiar uma hierarquia de arquivos inteira, o-x opção 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 /usre/usr/local , o uso cp -xR /usr /some-destnão copiaria a hierarquia em /usr/local.

Existem outros utilitários com uma -xopção com a semântica semelhantes, tais como a due find(a bandeira é chamado -xdevpara find), e rsync.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.