Ordene los archivos en el directorio de forma recursiva en función de la última fecha de modificación
He modificado muchos archivos en mi directorio, quiero saber cuáles son esos archivos ordenándolos por la fecha de la última modificación y en eso quiero que se excluyan algunas de las extensiones
en el directorio svn también tengo muchos archivos .svn que no quiero mostrar en el orden
Respuestas:
te dará algo como
fuente
find -not -iname '*.ext'
.Si desea aplanar la estructura del directorio (por lo tanto, ordenar por fecha sobre todos los archivos en todos los directorios, ignorando en qué directorio están los archivos), el
find
enfoque sugerido por @yeti es el camino a seguir. Si desea preservar la estructura del directorio, puede intentarque ordena el directorio basado.
fuente
En bash, corre
shopt -s globstar
primero. En ksh93, correset -o globstar
primero. En zsh, ya estás listo.Esto devolverá un error si tiene tantos archivos que se excede el límite de longitud de la línea de comandos en su sistema. En zsh, puede usar esto en su lugar:
fuente
Asumiendo que estás usando GNU find, prueba:
fuente
find
la-printf
opción para evitar invocar un proceso separado (o varios, dependiendo de la cantidad de archivos). Vea mi respuesta para un ejemplo.stat
una oportunidad y mostrar-exec ... +
. ¡De Verdad! A veces pienso,stat
merece más atención ... y nadie debería tener recetas de aquí sin leer acerca de los ingredientes y pensar en las consecuencias ...-printf
...find
no tiene-printf
, puede usar-exec sh -c 'printf...'
para obtener la misma funcionalidad. Eso incluiría el acceso a$(pwd)
rutas totalmente calificadas también.stat
. Así que a veces solo quiero dirigir un poco la atención sobrestat
... Creo que lostat
merece ...Para enumerar de manera sólida los nombres de archivo solo con herramientas recientes de GNU:
fuente
Esto evita cualquier problema en la lista de argumentos porque el único argumento
ls
que recibirá será el nombre del directorio que desea enumerar. Puedes hacer esto con lo que quieras.La cáscara simplemente
. sources
el|pipe
como script de shell - es el mismo proceso y no tiene los problemas que puede encontrar cuandoexecve
se llama.En cualquier caso, lo anterior solo tiene tres profundidades, que se puede ajustar cambiando
maxdepth
. También es profundo primero, por lo que puede avanzar hacia su directorio actual desdedepth
.Es posible que note que también obtiene
$LSCOLORS
: en mi máquina, también proporciona columnas bien impresas y todo lo que desea dels
, o, de hecho, cualquier cosa que pueda imaginar que querría hacer con. source.
NO SVN
De nuevo, esto hará todo lo que esperas
ls
. Entonces, ocultar.svn
archivos es tan simple como cambiar lals
línea a:O si desea ver
svn
extensiones en cada carpeta PERO./svn
podría cambiarla para que todo el comando se vea así:Personalmente, me gusta con ls
-s
y, si te importa,-u
lo ordenaré por tiempo de acceso en lugar de tiempo de modificación.fuente
Esto va a enumerar todos
files
en<dir>
con el ser superior más antigua modificadoY con esto, la última modificación es superior
Tenga en cuenta que esto solo funciona si la lista de nombres de archivos no supera el límite de longitud total de la línea de comandos en su sistema.
fuente
xargs -0
(en ambos casos).xargs -print0
es equivalente axargs -p -r -i -n -t -0
orxargs -inprt0
orxargs -0ntrip
, que probablemente no sea lo que querías decir.