Propósito de cp -x (permanecer en el sistema de archivos)?

25

Si quisiera permanecer en el mismo sistema de archivos, ¿no podría simplemente especificar una ruta de salida para el mismo sistema de archivos?

¿O es para evitar abandonar accidentalmente el sistema de archivos actual?

neverMind9
fuente
1
-x en un contexto diferente: unix.stackexchange.com/a/358331/30851 pero lo mismo para cp: -x omite las cosas, si está migrando sistemas de archivos y desea que sea una copia completa, considere montar de una manera que proporcione usted la imagen completa.
frostschutz
1
Podría preguntar lo mismo acerca de muchas banderas, por ejemplo -i: "¿por qué no solo especificar un destino que no existe"?
JigglyNaga
1
@JigglyNaga Estaba pensando eso también. Pero -x no estaba bien redactado en la documentación y era mucho menos obvio.
neverMind9

Respuestas:

59

Limita donde los archivos se copian a partir , no dónde se copian a. Es útil con copias recursivas, para controlar cómo cpdesciende en subdirectorios. Así

cp -xr / blah

solo copiará el sistema de archivos raíz, no ninguno de los otros sistemas de archivos montados.

Consulte la cp -xdocumentación (aunque su distinción es sutil).

Stephen Kitt
fuente
3
Ah, sí, es posible que no desee copiar recursos compartidos de red en / mnt. Tampoco un repositorio RCS remoto montado debajo de su unidad de inicio.
mckenzm
1
@mckenzm También porque /mntes solo una convención humana a veces impuesta por la configuración de una distribución, pero no es un requisito del sistema operativo. A veces tengo sistemas de archivos de red montados debajo /var/somewebsite/www/sessionspara implementar servidores web de equilibrio de carga
slebetman
De hecho, este tipo de indicador evita la copia accidental de grandes recursos compartidos de red o medios extraíbles que olvidó haber montado. Y no necesita dar --excludeopciones para bloquear manualmente cada uno de ellos. Muy útil con rsync.
Lassi
3
También evita copiar sistemas de archivos como /dev, etc. /proc, /sysque normalmente no desea leer "en masa".
Stephen Kitt
28

El -xindicador a cpes una extensión de GNU. Al copiar un solo archivo, esta opción no tendrá efecto, pero al copiar una jerarquía de archivos completa, la -xopción evita la copia de archivos y directorios que no viven en el mismo sistema de archivos que la fuente original.

Por ejemplo, en un sistema de archivos con puntos de montaje en /usry /usr/local, el uso cp -xR /usr /some-destno copiaría la jerarquía debajo /usr/local.

Hay otras utilidades con una -xopción con la semántica similares, tales como duy find(la bandera se llama -xdevpara find), y rsync.

Kusalananda
fuente