
La empresa para la que trabajo tiene una unidad de red compartida. En él tenemos carpetas para cada departamento, más carpetas para cada empleado. Hay toneladas de carpetas para empleados que se fueron hace años y estoy seguro de que lo mismo se aplica a las subcarpetas en el árbol de departamentos.
He ejecutado un análisis del uso del disco y tengo una sospecha razonable de que podemos guardarcargasde espacio en disco mediante la eliminación de datos obsoletos. Pero obtener una descripción general del uso del disco por última vez es un desafío interesante, para el cual no he podido encontrar una respuesta.
¿Algunas ideas? ¿Cómo puedo obtener una lista de carpetas (en varios niveles de árbol) ordenadas por la fecha en la que (o los archivos que contienen) se modificaron por última vez?
Actualización: esto es para Linux, pero no hay ninguna etiqueta para "Linux genérico" (solo Mint, Kali y algunos otros).
Respuesta1
Abra el Explorador de archivos y navegue hasta la carpeta compartida.
Presione F3la tecla en el teclado, verá el menú desplegable del campo de búsqueda, haga clic en el
Date modified:
siguiente Add a search filter
y elija el filtro de tiempo que necesite. Puede seleccionar criterios de búsqueda entre patrones predefinidos o escribir en el campo de búsqueda un rango de fechas como:
datemodified:1/1/2000 .. 8/22/2018
Si necesita encontrar archivos/carpetas que no se modificaron después de cierta fecha, puede usar <
un carácter delante de la fecha:
datemodified:<1/1/2010
encontrarárecursivamentetodos los archivos y carpetas anteriores al 1/1/2010
Cuando el explorador deje de buscar, cambie la vista Details
y presione la columna Date modified
para ordenar los archivos y carpetas encontrados y eliminar aquellos que ya no esté en uso.
También puede buscar por fecha accessed
o created
usando el filtro de búsqueda como:
datecreated:
dateaccessed:
Si desea automatizar la eliminación de contenido antiguo, puede utilizar la utilidad de la consola:forfiles
Para eliminar de forma recursiva carpetas/archivos que no se modificaron hace un año y más tarde de la carpeta C:\SomeFolder
:
forfiles /s /p "C:\SomeFolder" /d -365 /c "cmd /c del @path"
Si solo desea enumerar archivos/carpetas antiguos en lugar de eliminarlos, puede usar:
forfiles /s /p "C:\SomeFolder" /d -365 /c "cmd /c echo @path [@fdate]"
Úselo forfiles /?
para obtener más información sobre esta utilidad incluida con Windows
Incluso puede crear un archivo por lotes y ejecutarlo mediante el programador de tareas para eliminar automáticamente el contenido antiguo.
PD: Si desea buscar y eliminar directorios/archivos antiguos usando Linux, es mucho más sencillo:
Para enumerar contenido antiguo:
#!/bin/sh
srcDir='/Path/to/share/'
daysAgo='360'
find "${srcDir}" \( -type f -o -type d \) -a -mtime +"${daysAgo}"
Para eliminar contenido antiguo:
#!/bin/sh
srcDir='/Path/to/share/'
daysAgo='360'
find "${srcDir}" \( -type f -o -type d \) -a -mtime +"${daysAgo}" -exec rm -fd '{}' \;
Si desea eliminar directorios de forma recursiva, utilice rm -fdr
en lugar derm -fd