Com o seguinte comando, consegui listar todos os diretórios relativos ao diretório atual junto com a época da última modificação:
find . -exec stat -c '%n: %Y' {} \;
a saída é mais ou menos assim:
.: 1569247414
./a_file.txt: 1561624333
./some_folder: 1561624645
./some_folder/some_file.txt: 1561624645
./some_folder/another_file.txt: 1536557809
Como eu poderia me livrar do "./" que aparece no início de cada entrada e adicionar um '/' se for um diretório?
Como bônus, livrar-se da primeira entrada '.' que é apenas a pasta atual seria bom.
Saúde
Responder1
- Adicione
-mindepth 1
para se livrar do.
que é profundidade == 0 - Alternativa: usar
find *
em vez defind .
- Separe arquivos de pastas com
-type d ... -or -type f ...
- Use
+
em vez de\;
para enviar vários arquivos parastat
; ele aguenta e será muito mais rápido!
find * \
-type d -exec stat -c '%n/: %Y' {} + \
-or -type f -exec stat -c '%n: %Y' {} +
MAS...
Você não precisa -exec stat
de nada!
- Use
find
s bultin-printf
para imprimir a data da última modificação (%Cs
seria equivalente astat
's%Y
). -printf '%P'
em vez de%p
também permitirá que você se livre./
do início de cada nome de arquivo.
find . -mindepth 1 \
-type d -printf '%P/: %Cs\n' \
-or -type f -printf '%P: %Cs\n'
Saída:
a_file.txt: 1561624333
some_folder/: 1561624645
some_folder/some_file.txt: 1561624645
some_folder/another_file.txt: 1536557809