find
Find e’ um otimo aliado, mas vejo que muita gente ao meu lado nao usa ele com todo o potencial dele.
… keep it simple stupid, work smart not hard.
– some Unix guy…
find
historia
O find apareceu na versao 1 do AT&T UNIX e foi removido na versao 3 do proprio. Um novo programa do mesmo nome foi escrito para o “Programmer’s Workbench (PWB)” e foi lancado na versao 5 do AT&T UNIX. E novamente foi rescrito para o 4.3BSD-Reno.
versoes
Eu uso OpenBSD, e meus exemplos sao todos usando a versado do find que vem com ele. Caso voce use algum GNU/Linux e’ bem provavel que alguns exemplos vao ter alguma mudanca nos argumentos, as vezes para pior, as vezes para melhor. Por exemplo, no GNU Find Utilities, voce pode usar o argumento size passando por exemplo G para gigabyte. Recomendo sempre olhar o manual da sua versao.
name
Vamos comecar com o basico, vamos buscar todos os arquivos “.jpg” no diretorio atual e seus filhos.
~> find . -name "*.jpg"
./krig/changelog/static/i/2016/NC6ZuZu.jpg
./krig/changelog/static/i/fun/ps2-vs-usb.jpg
./krig/changelog/static/i/cv/cv_00k.jpg
./krig/changelog/static/i/cv/cv_qt.jpg
./krig/changelog/static/i/cv/cv_uol.jpg
./krig/changelog/static/i/cv/cv_vb.jpg
./krig/changelog/static/i/cv/cv_vt.jpg
./krig/changelog/public/i/2016/NC6ZuZu.jpg
./krig/changelog/public/i/fun/ps2-vs-usb.jpg
type
Por default, o find vai sempre filtrar o name por arquivos, mas e' sempre ideal manter claro que queremos filtrar por arquivos, para isso adicionamos o type no comando.
~> find . -name "*.jpg" -type f
./krig/changelog/static/i/2016/NC6ZuZu.jpg
./krig/changelog/static/i/fun/ps2-vs-usb.jpg
./krig/changelog/static/i/cv/cv_00k.jpg
./krig/changelog/static/i/cv/cv_qt.jpg
./krig/changelog/static/i/cv/cv_uol.jpg
O type as seguintes opcoes…
- b -> block
- c -> character
- d -> diretorio
- f -> arquivos
- l -> link simbolicos
- p -> FIFO
- s -> socket
Usando qualquer uma dessas opcoes, o find ira’ retornar apenas o type escolhido.
size
Agora vamos dizer que queremos todos os arquivos com um certo tamanho… O find pode nos ajudar nisso tambem.
~/om> find . -type f -size +1024c -size -2048c
./C/Captain Beyond - Captain Beyond (1972; 1997) [FLAC]/info.txt
./C/Captain Beyond - Captain Beyond (1972; 1997) [FLAC]/Captain Beyond - Captain Beyond.cue
Nesse exemplo1 estou buscando por todos os arquivos que tenham entre 1024bytes e 2048bytes.
*time
Ok, ja’ conseguimos pegar arquivos pelo nome, tamanho e tipo… Que tal pela data de acesso (atime), modificacao (mtime) e mudanca (ctime) dele?
- atime -> ultima vez que o arquivo foi aberto/lido
- ctime -> ultima mudanca de metadados do arquivo, como por exemplo o path e permissao
- mtime -> ultima modificacao no conteudo do aqruivo
Funciona do mesmo modo que o size… Exemplo:
find . -type f -atime +10 -atime -15
Ou arquivos que nao foram abertos a mais de um ano…
find . -type f -atime +365
user / group
Arquivos que pertencem a um user? O find consegue trazer para nos tambem…
find . -user umgeher
O mesmo funciona para group.
man
O find tem N opcoes para uso. Leia o manual dele. Vai facilitar a sua vida na hora de manipular uma grande quantidade de arquivos.
Captain Beyond e’ uma banda sensacional. O disco com o proprio nome da banda para mim e’ o melhor de todos. E’ literalmente um post-deep-purple bem raiz. Viagem do inicio ao fim. Otima trilha para uma noite de soft coding. ↩︎
Articles from blogs I follow around the net
Nomadic Infrastructure Design for AI Workloads
Taco Bell is a miracle of food preparation. They manage to have a menu of dozens of items that all boil down to permutations of 8 basic items: meat, cheese, beans, vegetables, bread, and sauces. Those basic fundamentals are combined …
via Xe Iaso's blog 2024-11-12 00:00Self-hosted web browser bookmarks syncing
# Introduction This blog post is about Floccus, a self-hosting web browser bookmarks and tabs syncing software. What is cool with Floccus is that it works on major web browsers (Chromium, Google Chrome, Mozilla Firefox, Opera, Brave, Vivaldi and Microso…
via Solene'% 2024-11-05 00:00Game of Trees 0.104 released
Version 0.104 of Game of Trees has been released (and the port updated). * got 0.104; 2024-10-22 see git repository history for per-change authorship information - gotd.conf: document the macro syntax - tog: prevent a segfault upon unexpected object type in re…
via OpenBSD Journal 2024-10-23 07:12Generated by openring
/comments ~umgeher/changelog@lists.sr.ht?Subject=Re: find
/permalink https://umgeher.org/posts/2022/03/find.html