O que faz 'cp -x'?

2

Eu sei nas páginas de manual que ele é como -x, --one-file-system stay on this file system , mas alguém pode me explicar como se eu tivesse cinco.

    
por jkris 21.01.2016 / 05:08

3 respostas

10

cp -ax , rsync -x ou tar -one-file-system , todos são iguais.

Isso significa não cruzar os limites do sistema de arquivos .

Um limite entre os sistemas de arquivos é um ponto de montagem .

Se você executar df -a , verá todos os arquivos e pontos de montagem.

Para ajudar você a entender com um exemplo:

Se você executar df em seu sistema de arquivos: df / ou no diretório / usr: df /usr , você verá que eles estão montados em / , sua partição de instalação. Mas se você executar em / proc df /proc , verá que o ponto de montagem é diferente.

Portanto, se você emitir uma cópia recursiva no sistema de arquivos cp -ax / , ela não copiará o diretório /proc .

Você pode adicionar a opção -v se quiser ver exatamente o que é descartado e o que está sendo copiado.

Como outros salientaram, ele é usado com recursivas e as pessoas geralmente o usam como backup.

E você deve ver "Significado dos limites do sistema de arquivos" para saber mais sobre os pontos de montagem.

    
por 21.01.2016 / 06:23
2

Isso fará diferença se você usar cp com recursão, ou seja, com -r ou -a e a origem estiver acima de um ponto de montagem.

Por exemplo: /data/job/encrypt é um ponto de montagem ativo.

cp -a  /data/job /path/to/target # includes /data/job/encrypt
cp -ax /data/job /path/to/target # excludes /data/job/encrypt
    
por 21.01.2016 / 05:18
1

Do meu ponto de vista, isso significa que ele copiará apenas as coisas no arquivo atualmente em execução, e não em outro que possa estar presente

Exemplo. Se você montou outro sistema de arquivos (outro disco físico, usb ou sistema de arquivos remoto) em / home / jkris / mnt / otherfs e então prosseguiu para

cp -ax /home/jkris/ /mybackup/dir/

Não copia nada de ~ / mnt / otherfs

Pergunta e resposta semelhante aqui: link

    
por 21.01.2016 / 05:20

Tags