Costumo usar o SCP para copiar arquivos - principalmente arquivos relacionados à Web. O problema é que, sempre que faço isso, não consigo meu comando para copiar arquivos ocultos (por exemplo, .htaccess).
Normalmente invoco isso:
scp -rp src/ user@server:dest/
Isso não copia arquivos ocultos. Eu não quero ter que chamar isso de novo (fazendo algo parecido scp -rp src/.* ...
- e que tem estranha .
e ..
implicações de qualquer maneira.
Não vi nada na scp
página de manual sobre um "incluir arquivos ocultos".
Como posso fazer isso?
src/.*
também copiesrc/..
(o diretório pai), certo?Respostas:
Isso deve corresponder absolutamente aos arquivos ocultos. O / no final da fonte diz "todos os arquivos neste diretório". No entanto, testes e pesquisas confirmam você. Este é um comportamento estúpido.
A " resposta " é acrescentar um ponto ao final da fonte:
scp -rp src/. user@server:dest/
A resposta real é usar o rsync.
fonte
scp -r source/ host:source2
copia arquivos de ponto. Funciona no OpenSSH 5.1 a partir de 2007..
no final não funciona mais (2019) devido a problemas de segurança. Isso é explicado aqui: superuser.com/questions/1403473/scp-error-unexpected-filenameVocê pode tentar o rsync. É mais adequado para este trabalho:
(E vale a pena ler sua página de manual.)
fonte
Não coloque uma barra após o diretório de origem. Seu código ficaria assim:
Isso criará um diretório 'src' em 'dest' na máquina remota, com todos os arquivos ocultos incluídos. Provavelmente não é exatamente o que você deseja, mas copiará arquivos ocultos no src.
fonte
A seguir, resolveremos o problema, isso foi totalmente testado em nosso ambiente de integração contínua
Espero que ajude
fonte
scp: error: unexpected filename: .
. Certifique-se de testar se ele funciona com a sua distribuição, companheiro Googler :)Para copiar apenas arquivos ocultos, use este comando
Jogo real é a
/.[!.]*
tag que se refere aos arquivos que começam com.
(oculto)fonte
Nenhuma das soluções scp acima funcionou para mim. No entanto, descobri que o seguinte funcionava no cygwin: scp -r directory / * host: directory O '*' correspondia a todos os arquivos visíveis e ignorava o invisível.
fonte
Se o login com senha estiver desativado na máquina remota, e a única maneira de efetuar login for via chave pública, você poderá usar este:
Ele também copia arquivos ocultos.
Observe também que "user1" deve ter permissões para ler esses arquivos; por exemplo, você não pode copiar as pastas ssh de outros usuários com esse método.
fonte
Como
scp
suporta expressões regulares, isso fará o truque para você:scp -rp src/(*|.*) user@server:dest/
fonte
O controle de revisão distribuído manipula arquivos ocultos
Devido à vulnerabilidade CVE-2018-20685, o
/.
truque não pode mais ser usado comscp
. No entanto, o controle de revisão distribuído comogit
ou Hg Mecurial manipulará arquivos ocultos como qualquer outro arquivo. Aqui estão os comandos para o meu Hg Mercurial favorito :Alterações subseqüentes precisarão ser confirmadas novamente
client:$ hg com -m "commit message"
e pressionadas usando oclient:$ hg push
comando Aprenda mais sobre como fazer alterações nesta folha de dicas do Hg Mercurial .fonte