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 {} \;
~/docsnameopción coincidirá con todos los txtarchivos: execejecutará el comando touchen el nombre del archivo, que se sustituye en{}\;finaliza el comando y touchse llamará una vez por cada archivo encontradoNota:
\+al final construye un solo comando para ejecutarse touchen todos estos archivos a la vez. Esto no es posible con todos los comandos, pero funciona touchy le ahorra algunas llamadas si tiene muchos archivos afectados.
{} \+sería mejor aquí ...touchpuede 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átouchsolo 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 finddocumentación.