Dentro de mi directorio ~ / docs, quiero "tocar" todos los archivos que terminan en .txt
¿Cómo puedo hacer esto?
Con find
:
find ~/docs -name "*.txt" -exec touch {} \;
~/docs
name
opción coincidirá con todos los txt
archivos: exec
ejecutará el comando touch
en el nombre del archivo, que se sustituye en{}
\;
finaliza el comando y touch
se llamará una vez por cada archivo encontradoNota:
\+
al final construye un solo comando para ejecutarse touch
en todos estos archivos a la vez. Esto no es posible con todos los comandos, pero funciona touch
y le ahorra algunas llamadas si tiene muchos archivos afectados.
{} \+
sería mejor aquí ...touch
puede manejar muchos nombres de archivo en su línea de comando, por ejemplo, con 10 mil archivos y se harán{} \;
10 mil llamadas atouch
... El uso{} \+
llamarátouch
solo una vez (dependiendo de la memoria disponible) ... Aquí es un extracto de de hallazgo hombre-página:-exec command {} + ... The command line is built in much the same way that xargs builds its command lines
. Hay más detalles en laman find
documentación.