Mi carpeta parenttiene el siguiente contenido:
A.Folder B.Folder C.File
Tiene tanto carpetas como archivos dentro. B.FolderEs más nuevo. Ahora solo quiero obtener B.Folder, ¿cómo podría lograr esto? Intenté esto
ls -ltr ./parent | grep '^d' | tail -1
pero me da drwxrwxr-x 2 user user 4096 Jun 13 10:53 B.Folder, pero solo necesito el nombre B.Folder.
shell
files
ls
timestamps
Daniel
fuente
fuente

ls -ltr ./parent | grep '^d' | tail -1| awk '{print $NF}'Respuestas:
Prueba esto:
-tlas opciones hacenlsordenar por hora de modificación, primero las más nuevasSi quieres eliminar
/:fuente
/?ls -td -- ./parent | head -n 1, no me da los resultados correctos, ¿DEBO usar subshell comocd ./parentcada vez y ejecutar este comando? ¿Alguna solución?La diferencia con la solución de Herson es la barra inclinada posterior
*, que hace que el shell ignore todos los archivos que no sean dir. A diferencia de Gnouc , funcionará si estás en otra carpeta.Cut necesita saber el número de directorios principales (2) para eliminar '/' final. Si no tienes eso, usa
fuente
Respuesta zsh obligatoria:
Los caracteres entre paréntesis son calificadores globales :
/para hacer coincidir solo directorios,omordenar coincidencias al aumentar la edad y[1]retener solo la primera coincidencia (es decir, la más reciente). AgregueNsi desea obtener una matriz vacía (normalmente obtiene una matriz de 1 elemento) si no hay un subdirectorio deparent.Alternativamente, suponiendo que
parentno contenga ningún carácter globbing de shell:Si no tiene zsh pero tiene herramientas recientes de GNU (es decir, Linux o Cygwin no integrados), puede usarlo
find, pero es engorroso. Aquí hay una manera:Hay una solución simple con
ls, que funciona siempre que ningún nombre de directorio contenga nuevas líneas o (en algunos sistemas) caracteres no imprimibles:fuente
Tu puedes hacer:
fuente
El siguiente comando hará el trabajo incluso en caso de que el nombre del directorio contenga espacio:
La explicación actualizada de las cosas en los backticks es:
.- el directorio actual (es posible que desee especificar una ruta absoluta aquí)-mindepth/-maxdepth- restringir el comando de búsqueda solo a los elementos secundarios inmediatos del directorio actual-type d- solo directorios-exec stat ..- genera el tiempo modificado y el nombre del directorio de find separados con una pestaña (y no un espacio)sort -n -r |head -1 | cut -f2- date ordena el directorio y muestra el nombre completo de la última modificación (incluso si contiene algo de espacio como la pestaña delimitador predeterminado de corte)fuente