= find - fd [[https://github.com/sharkdp/fd]] == install sudo apt install fd-find sudo ln -s /usr/lib/cargo/bin/fd /usr/local/bin/fd == regexp [[https://docs.rs/regex/latest/regex/#syntax]] * por defecto * ''^'': empieza * ''$'': acaba * buscar ''-'':fd -- '-pattern' fd '[-]pattern' == parámetros * ''%%--%%ignore-case'' * por defecto: todo minúsculas, no distingue. Si alguna mayúscula, distingue. * ''-e'': extensión * ''^c.*png$'' * ''.*.pdf'' * ''%%--%%type'' | ''-t'': tipo * ''f'': fichero * ''d'': directorio * ''l'': enlace simbólico * ''x'': ejecutable * ''e'': fichero vacío * ''%%--%%changed-whithin Nd'': busca ficheros cambiados en los N días * ''%%--%%exclude-dir '' '' | ''-E'': excluye de la búsqueda el patrón * ''%%--%%size '' '' * ''-x '': buscar y ejecutar comando para cada fichero * ''-X '': buscar y ejectuar comando una vez con todos los resultados * ''%%--%%regexp '' * ''%%--%%perm '' * ''%%--%%hidden'' | ''-H'': buscar en directorios o ficheros ocultos (dot) * ''%%--%%no-ignore'' | ''-I'': no ignorar ficheros contenidos en .gitignore * ''%%--%%full-path'' | ''-p'': busca por full path y no solo por nombre (de fichero o directorio) * ''%%--%%list-details'' | ''-l'': alias de ''fd . -X ls -lhd --color=always'', mostrando detalles del fichero (owner, perms, ...) * ''%%--%%threads'' | ''-j'': número de ejecuciones paralelas =1 es en serie (modo por defecto) * The terminal output of commands run from parallel threads using -x will not be interlaced or garbled, so fd -x can be used to rudimentarily parallelize a task run over many files. An example of this is calculating the checksum of each individual file within a directory. * ''%%--%%unrestricted'' | ''-u'': busca en ficheros ocultos e ignorados (parámetros HI) == placeholder Sustituciones usadas en búsquedas y ejecuciones sobre el nombre de los archivos * ''{}'': A placeholder token that will be replaced with the path of the search result (documents/images/party.jpg). * ''{.}'': Like {}, but without the file extension (documents/images/party). * ''{/}'': A placeholder that will be replaced by the basename of the search result (party.jpg). * ''{%%//%%}'': The parent of the discovered path (documents/images). * ''{/.}'': The basename, with the extension removed (party). == ignore * ''.ignore'' * ''~/.config/fd/ignore'': global == colors * variable ''LS_COLORS'' * varibale ''NO_COLOR''º == ejemplos * Recursively find all zip archives and unpack them:fd -e zip -x unzip * Find all test_*.py files and open them in your favorite editor. Note that we use capital -X here to open a single vim instance. If there are two such files, test_basic.py and lib/test_advanced.py, this will run vim test_basic.py lib/test_advanced.py.:fd -g 'test_*.py' -X vim * To see details like file permissions, owners, file sizes etc., you can tell fd to show them by running ls for each result:fd … -X ls -lhd --color=always fd … -l * Convert all *.jpg files to *.png files:fd -e jpg -x convert {} {.}.png * mirar placeholders * To format the output of fd as a file-tree you can use the tree command with --fromfile:fd | tree --fromfile