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 /foose lo mostrará). Entonces, si copia en foo/.otro lugar, efectivamente copia todo el árbol a continuación foosin copiarse a foosí 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 /fooen /foo2así, a excepción de los dotfiles / dotdirs. Efectivamente, cprecibirá (potencialmente) muchos argumentos. Si la lista es demasiado grande, incluso puede provocar cpque falle la ejecución de .
cp -r /foo/*hace lo mismo quecp /foo/*?set -xoecho cp -pr /foo/* /foo2para ver qué está pasando. Es importante darse cuenta de que es el caparazón que expande los comodines.cpNo ve la estrella.