Existe uma maneira fácil de copiar recursivamente todos os arquivos ocultos em um diretório para outro diretório? Gostaria de fazer backup apenas de todos os arquivos de configurações em um diretório pessoal, não dos arquivos normais. Eu tentei:
cp -R .* directory
mas também reconhece .
e ..
copia recursivamente todos os arquivos não ocultos. Existe uma maneira de obter cp para ignorar .
e ..
?
-r
e-R
?Respostas:
Meu favorito para mover dirs em geral tem sido:
que coloca o diretório atual em stdout e o canaliza para um subshell que primeiro o CD está no diretório de destino antes de desdobrar stdin. Simples, direto, extensível - considere o que acontece quando você substitui o () por um ssh para outra máquina. Ou, para responder sua pergunta, você pode fazer:
fonte
cd /dest/dir && tar xvf -
. O&&
impedirá de exibir o diretório de origem se você tiver um erro de digitação no destino. 2) Você só precisa dov
sinalizador tar em um dos comandos tar (ou nenhum).(cd /src/dir && tar cf - .) | tar xvf -
Quase sempre que isso pode ser resolvido apenas com:
É muito incomum ter um arquivo oculto que não comece com um desses caracteres.
Outras correspondências de padrões estão disponíveis (
.??*
,.[^.]*
) - veja os comentáriosfonte
Você poderia usar
rsync
.que copiará o conteúdo do diretório atual (incluindo arquivos de ponto, mas não incluindo
..
)fonte
.git
diretórios. A adição de -C faz isso e o comando se torna:rsync -aC ./ /some/other/directory/
Eu te imploro, passo de expansão shell simples na
cp
linha de comando - expansão shell tem todos os tipos de ahem . Casos de canto "interessantes" (recursão indesejados causados por e .., espaços, coisas não-imprimíveis, hardlinks, links simbólicos, e etc.) Use emfind
vez disso (ele vem nofindutils
pacote, caso você não o tenha instalado - o que seria estranho, todas as distribuições o instalam por padrão):Explicação passo a passo:
Portanto, em inglês simples, esta
find
linha de comando diz o seguinte:fonte
Eu sempre usei. ?? * para encontrar arquivos ocultos sem obter "." e "..". Pode faltar ".a" ou algo assim, mas nunca tenho um deles.
fonte
Respostas muito melhores aqui; /superuser/61611/how-to-copy-with-cp-to-include-hidden-files-and-hidden-directories-and-their-con
Descreve, por exemplo, o uso de shopt para uma solução de bash nativa
fonte