Estoy tratando de entender la importancia del punto en bash y cómo se diferencia de un asterisco. ¿Alguien puede dar más detalles? Por ejemplo, ¿cuál es la diferencia entre cp -ar /foo/. /foo2/
ycp -pr /foo/* /foo2/
11
El punto ( .
) es solo el .
directorio dentro de un directorio que es el mismo que el directorio en sí ( ls -la /foo
se lo mostrará). Entonces, si copia en foo/.
otro lugar, efectivamente copia todo el árbol a continuación foo
sin copiarse a foo
sí mismo (lo está copiando en lo foo2/.
que es lo mismo foo2
).
/foo/*
se expande por la cáscara a la lista de archivos que no son ocultos y directorios en /foo
, por lo que sería copiar la misma estructura de directorios bajo /foo
en /foo2
así, a excepción de los dotfiles / dotdirs. Efectivamente, cp
recibirá (potencialmente) muchos argumentos. Si la lista es demasiado grande, incluso puede provocar cp
que falle la ejecución de .
cp -r /foo/*
hace lo mismo quecp /foo/*
?set -x
oecho cp -pr /foo/* /foo2
para ver qué está pasando. Es importante darse cuenta de que es el caparazón que expande los comodines.cp
No ve la estrella.