A menudo uso SCP para copiar archivos, especialmente archivos relacionados con la web. El problema es que cada vez que hago esto, no puedo obtener mi comando para copiar archivos ocultos (por ejemplo, .htaccess).
Normalmente invoco esto:
scp -rp src/ user@server:dest/
Esto no copia archivos ocultos. No quiero tener que invocar esto nuevamente (haciendo algo como scp -rp src/.* ...
, y eso tiene extrañas .
e ..
implicaciones de todos modos.
No vi nada en la scp
página del manual sobre "incluir archivos ocultos".
¿Cómo puedo lograr esto?
src/.*
también copiassrc/..
(el directorio principal), ¿verdad?Respuestas:
Eso debería coincidir absolutamente con los archivos ocultos. El / al final de la fuente dice "cada archivo en este directorio". Sin embargo, las pruebas y la investigación lo confirman. Este es un comportamiento estúpido.
La " respuesta " es agregar un punto al final de la fuente:
scp -rp src/. user@server:dest/
La verdadera respuesta es usar rsync.
fuente
scp -r source/ host:source2
copia archivos de puntos. Funciona en OpenSSH 5.1 desde 2007..
al final ya no funciona (2019) debido a problemas de seguridad. Esto se explica aquí: superuser.com/questions/1403473/scp-error-unexpected-filenamePuedes probar rsync. Es más adecuado para este trabajo:
(Y vale la pena leer su página del manual).
fuente
No coloque una barra diagonal después del directorio de origen. Su código se vería así:
Esto creará un directorio 'src' debajo de 'dest' en la máquina remota, con todos los archivos ocultos incluidos. Probablemente no sea exactamente lo que desea, pero copiará archivos ocultos en src.
fuente
Lo siguiente resolverá el problema, esto se ha probado completamente en nuestro entorno de integración continua
Espero eso ayude
fuente
scp: error: unexpected filename: .
. Asegúrese de probar si funciona con su distribución, compañero de Google :)Para copiar solo archivos ocultos, use este comando
El juego real es la
/.[!.]*
etiqueta que se refiere a los archivos que comienzan con.
(oculto)fuente
Ninguna de las soluciones scp anteriores funcionó para mí. Sin embargo, descubrí que lo siguiente funcionó en cygwin: scp -r directorio / * host: directorio El '*' coincidió con todos los archivos visibles y omitió lo invisible.
fuente
Si el inicio de sesión con contraseña está deshabilitado en la máquina remota, y la única forma de iniciar sesión es mediante clave pública, puede usar esto:
También copia archivos ocultos.
También tenga en cuenta que "user1" debe tener los permisos para leer esos archivos, por ejemplo, no puede copiar las carpetas ssh de otros usuarios con este método.
fuente
Como
scp
admite expresiones regulares, esto será un buen truco para usted:scp -rp src/(*|.*) user@server:dest/
fuente
El control de revisión distribuido maneja archivos ocultos
Debido a la vulnerabilidad CVE-2018 a 20685, el
/.
truco ya no se puede utilizar conscp
. Sin embargo, el control de revisión distribuido comogit
o Hg Mecurial manejará archivos ocultos como cualquier otro archivo. Aquí están los comandos para mi Hg Mercurial favorito :Los cambios posteriores deberán confirmarse nuevamente
client:$ hg com -m "commit message"
y luego presionarse con elclient:$ hg push
comando. Obtenga más información sobre cómo impulsar los cambios en esta hoja de trucos de Hg Mercurial .fuente