Quiero realizar alguna acción (decir chown
) en todos los archivos ocultos en un directorio.
Sé que este .*
es no una buena idea porque también encontrará el .
y padre ..
directorios (sé que rm
no funcionará en .
y ..
pero otros comandos, incluido chown
y chmod
, felizmente surtirá efecto)
¡Pero todos mis archivos ocultos tienen nombres diferentes!
¿Cómo debo buscar todos los archivos ocultos mientras excluyo .
y ..
?
Respuesta aceptada:
Puede usar el siguiente extglob
patrón:
[email protected](!(.|))
-
.
coincide con un.
al principio -
@()
es unextglob
patrón, coincidirá con uno de los patrones del interior, ya que solo tenemos un patrón dentro, lo seleccionará -
!(.|)
es otroextglob
patrón (anidado), que coincide con cualquier archivo sin o con un.
; Como hemos emparejado.
al principio ya, este patrón completo coincidirá con todos los archivos que comienzan con.
excepto.
y..
.
extglob
está habilitado en sesiones interactivas de bash
por defecto en Ubuntu. Si no, habilítalo primero:
shopt -s extglob
Ejemplo:
$ echo [email protected](!(.|))
.bar .foo .spam