Con el siguiente comando he podido enumerar todos los directorios relativos al directorio actual junto con la última modificación de la época:
find . -exec stat -c '%n: %Y' {} \;
la salida se parece a esto:
.: 1569247414
./a_file.txt: 1561624333
./some_folder: 1561624645
./some_folder/some_file.txt: 1561624645
./some_folder/another_file.txt: 1536557809
¿Cómo puedo deshacerme del "./" que aparece al principio de cada entrada y agregar un "/" si es un directorio?
Como beneficio adicional, deshacerse de la primera entrada '.' que es solo la carpeta actual estaría bien.
Salud
Respuesta1
- Agregue
-mindepth 1
para deshacerse de.
cuál es la profundidad == 0 - Alternativa: utilizar
find *
en lugar defind .
- Separar archivos de carpetas con
-type d ... -or -type f ...
- Úselo
+
en lugar de\;
para enviar varios archivos astat
; ¡Puede manejarlo y será mucho más rápido!
find * \
-type d -exec stat -c '%n/: %Y' {} + \
-or -type f -exec stat -c '%n: %Y' {} +
PERO...
¡No necesitas -exec stat
nada!
- Utilice
find
s bultin-printf
para imprimir la fecha de la última modificación (%Cs
sería el equivalente astat
's%Y
). -printf '%P'
en lugar de%p
también le permitirá deshacerse./
del principio de cada nombre de archivo.
find . -mindepth 1 \
-type d -printf '%P/: %Cs\n' \
-or -type f -printf '%P: %Cs\n'
Producción:
a_file.txt: 1561624333
some_folder/: 1561624645
some_folder/some_file.txt: 1561624645
some_folder/another_file.txt: 1536557809