Use o mesmo para copiar arquivos & diretórios de forma inteligente do terminal Mac

Índice:

Anonim

A maioria dos usuários de linha de comando de longa data confia no comando cp para copiar arquivos e diretórios, mas o Mac OS X oferece outra solução com o comando 'ditto'. Ditto é um pouco mais avançado, mas pode ser vantajoso para 'cp' por vários motivos, pois não apenas preserva atributos e permissões de propriedade, mas também bifurcações de recursos de arquivo e metadados de arquivo e pasta, essencialmente garantindo que o arquivo e/ou pastas sejam copiados exatamente.

Além disso, ditto pode ser usado para copiar um arquivo ou pasta para um diretório de origem, mas se essa origem ainda não existir, ditto irá criá-la automaticamente. Além disso, se a pasta de destino existir, o conteúdo copiado será mesclado nesse diretório de destino. Por fim, idem também segue links simbólicos, tornando-o particularmente útil se você for um usuário frequente do comando ln.

Para entender melhor o comando ditto, vamos ver alguns exemplos com sintaxe real.

Usando Ditto para copiar arquivos / pastas

Em sua forma mais simples, ditto funciona como o comando cp, com a seguinte sintaxe básica:

ditto source destination

Por exemplo, se você quiser copiar ~/Desktop/FluffyBackups para /Volumes/FluffyBackups/, basta digitar o seguinte:

ditto ~/Desktop/FluffyBackups /Volumes/FluffyBackups/

Novamente, isso manterá todos os detalhes de propriedade e metadados de recursos dos arquivos copiados, o que pode ser particularmente importante se você estiver copiando arquivos de um diretório de usuário para outro ou se quiser preservar algo como tempos de modificação de arquivos.

Se você não tiver certeza sobre o conteúdo de origem e destino, sempre poderá comparar os dois com o comando comm ou o comando diff antes de prosseguir com o comando idem.

Usando Ditto para mesclar diretórios e conteúdo de pastas

Lembre-se, ditto verificará se o destino já existe e, se existir, mesclará os diretórios da origem com o destino. Isso é importante e extremamente útil, tornando-o uma das maneiras mais fáceis de mesclar os diretórios da linha de comando no Mac OS X (embora agora também seja fácil no Finder).

ditto ~/Pictures/Fall2015/ /Volumes/PhotoBackup/2015/

Isso pegaria todas as fotos de “Fall2015” e as copiaria para o diretório pré-existente “2015”, mesclando efetivamente o conteúdo da origem ao destino. Novamente, o comportamento de mesclagem ocorre quando o destino já existe, se o destino não existir, ele será criado conforme especificado ou como o nome da origem.

Se você estiver usando ditto para copiar dados de diretórios com links simbólicos, usar o sinalizador -V (verbose all) é valioso porque exibirá todos os arquivos e links simbólicos que foram copiados. Observação -V é diferente de -v, que mostrará apenas arquivos como saída, e não links simbólicos.

Copiar sem metadados usando o mesmo

Se por algum motivo você não quiser copiar metadados e bifurcações de recursos, você pode usar o sinalizador –norsrc da seguinte forma:

ditto -V --norsrc ~/Sample/Folder /Volumes/NoMetadataBackups

Usar o sinalizador –norsrc anula um benefício primário do idem, mas pode ser útil em alguns casos.

Você pode aprender muito mais sobre o excelente comando ditto lendo sua página de manual, acessível no Mac OS X digitando:

man idem

Como de costume, use as teclas de seta para navegar para cima e para baixo na página do manual.

Antes de confiar muito no idem, certifique-se de experimentá-lo algumas vezes com movimentos inconseqüentes de arquivos e mesclagens de diretórios para entender como ele funciona com o uso planejado.

Use o mesmo para copiar arquivos & diretórios de forma inteligente do terminal Mac