Estoy tratando de obtener los archivos anteriores a varios días y enumerarlos en orden descendente en función de su tamaño con toda su información (tamaño, ruta completa, etc., algo similar proporcionado por ls
).
Si bien puedo localizar archivos antiguos con:
find . -mtime +10
No puedo enumerar la información deseada.
Respuestas:
Siempre que sus rutas de archivo no contengan caracteres de nueva línea:
Ver
find
manual , secciónActions
.%s
Tamaño del archivo en bytes.%n
Número de enlaces duros al archivo.%m
Bits de permiso de archivo (en octal ).%u
Nombre de usuario del archivo o ID de usuario numérico si el usuario no tiene nombre.%g
Nombre del grupo de archivos o ID numérico del grupo si el grupo no tiene nombre.%t
Hora de última modificación del archivo en el formato devuelto por lactime
función C.%p
Nombre del archivo%l
Objeto del enlace simbólico (cadena vacía si el archivo no es un enlace simbólico).Por cierto: tenga en cuenta que el manual POSIX
find
no especifica la mayoría de las acciones anteriores.fuente
Este comando usa solo las características POSIX de
find
y dels
:Sin embargo, puede llamar
ls
más de una vez, si hay una gran cantidad de archivos en el directorio actual (o subdirectorios recursivamente) que coinciden con el-mtime +10
primario.Si llama
ls
más de una vez, por supuesto, la clasificación solo se realizará dentro de cadals
ejecución, no a través de múltiples ejecuciones.Aún así, para un número razonable de archivos, esta es probablemente su mejor opción.
fuente
ls
se pasa solo un argumento, hay poca clasificación que pueda hacer en él. Con en+
lugar de;
, eso sería mejor, perols
aún podría terminar siendo llamado varias veces si hay muchos archivos.Con
zsh
:O para evitar la doble clasificación (por nombre por zsh y por tamaño por ls):
o (si su
ls
soporte-U
para sin clasificar):Agregue el
D
calificador global si desea ver también los archivos ocultos.fuente
zargs
.Creo que podrías hacer algo similar a:
observe el
-S
parámetro dels
comando:fuente
/home/phphil
. Pruebals -ld ...
find . -type f
lugar?find ... -type f
funcionaría, al igual que agregar la-d
bandera als
prueba esto:
fuente
Para una línea más sencilla, puede usar la
find
opción-ls
. Parece que, en la mayoría de los casos, el tamaño del archivo está en la séptima columna de la información enumerada (por lo tanto, cambie7
al final del comando según corresponda si no es así):fuente
Otra variación sería usar:
Aquí está el comando:
fuente