El otro día, un usuario de Linux me preguntó cómo encontrar el archivo más antiguo en un directorio desde la línea de comandos en Linux. Podríamos saber cuál es el archivo más antiguo de un directorio usando las marcas de fecha y hora en modo GUI. Pero no sé cómo encontrarlo desde la línea de comandos. Afortunadamente, encontré esta solución después de un poco de excavación en Google. Si alguna vez se preguntó cómo encontrar el archivo más antiguo en un directorio o en todo el sistema de archivos, siga leyendo. No es tan difícil.
Encuentre el archivo más antiguo en un árbol de directorios en Linux
Para encontrar el archivo más antiguo en un directorio, por ejemplo /home/sk/ostechnix/ , ejecuta:
$ find /home/sk/ostechnix/ -type f -printf '%T+ %p\n' | sort | head -n 1
Analicemos este comando y veamos qué hace cada argumento de la línea de comando.
Aquí,
- buscar - Buscar archivos en una jerarquía de directorios.
- /home/es/ostechnix/ - Buscar ubicación.
- escriba -f - Busca solo los archivos normales.
- -printf '%T+ %p\n' - Imprime la fecha y la hora de la última modificación del archivo separadas por + símbolo. (Por ejemplo, 2015-07-22+13:42:40.0000000000). Aquí, %p indica el nombre del archivo.
\n indica nueva línea. - ordenar | cabeza -n 1 - La clasificación ordena la salida y la envía a head Comando para mostrar el archivo más antiguo. Aquí, -n 1 indica solo un archivo, es decir, el archivo más antiguo.
Como ya sabrá, Explainshell le ayuda a encontrar lo que hace cada parte de un comando de Linux.
El comando anterior devolvió el siguiente resultado:
2015-07-22+13:42:40.0000000000 /home/sk/ostechnix/Absolute FreeBSD_ 2nd Edition.pdf
Como puede ver en el resultado anterior, Absolute FreeBSD_ 2nd Edition.pdf es el archivo más antiguo en /home/sk/ostechnix/ directorio.
Tenga en cuenta que Linux no encuentra el archivo más antiguo utilizando la fecha de creación del archivo. En su lugar, utiliza la fecha de modificación del archivo para encontrarlo.
Descargar - Hoja de referencia gratuita:"Hoja de referencia de la línea de comandos de Linux"Del mismo modo, para encontrar los cinco archivos más antiguos en un directorio determinado, simplemente ejecute:
$ find /home/sk/ostechnix/ -type f -printf '%T+ %p\n' | sort | head -n 5
Salida de muestra:
2015-07-22+13:42:40.0000000000 /home/sk/ostechnix/Absolute FreeBSD_ 2nd Edition.pdf 2016-11-28+21:03:05.0000000000 /home/sk/ostechnix/Etcher-linux-x64.AppImage 2016-12-14+18:28:20.5162190000 /home/sk/ostechnix/ubuntu.jpg 2016-12-18+18:14:46.5931480000 /home/sk/ostechnix/Marconi Union - Sleepless.mp3 2017-03-17+19:28:27.8193330000 /home/sk/ostechnix/The Devops toolkit.pdf
El archivo más antiguo se mostrará primero.
Para encontrar el archivo más antiguo en todo el sistema de archivos raíz (/), ejecute:
$ sudo find / -type f -printf '%T+ %p\n' | sort | head -n 1
Actualización:
Un compañero usuario de Linux ha señalado cómo encontrar los archivos más antiguos o más nuevos en un directorio en la sección de comentarios a continuación. Es mucho más fácil que mi método.
Para encontrar el archivo más antiguo en un directorio, vaya a ese directorio y ejecute:
$ ls -lt | tail -1
Para encontrar el archivo más nuevo en un directorio:
$ ls -ltr | tail -1
Espero que esto haya sido útil.