Linux: lista de argumentos es demasiada larga al usar rm.

El mensaje “Lista de argumentos demasiada larga” o “Argument list too long” (si el lenguaje de Linux está en inglés) sale cuando intentamos borrar demasiados archivos con el comando rm (remover). Más precisamente cuando usamos el comodín asterisco (*) como parte del argumento de este comando.

Si usamos, por ejemplo, rm *.txt en un directorio o carpeta que tiene miles o cientos de miles de archivos con esa extensión, es muy común que el comando nos responda con ese mensaje ya que intenta reemplazar el asterisco con todos los nombres de los archivos encontrados en el directorio como argumentos del comando rm.

Solución a “lista de argumentos es demasiada larga” al usar rm.

La manera de borrar todos los archivos de una carpeta, siguiendo con el ejemplo anterior, que contiene muchos archivos con extensión txt, es usando el comando find de la siguiente forma:

find . -name ‘*.txt’ exec rm{} \;

Espero les sea útil esta entrada. Todo comentario es bienvenido. Nos vemos pronto. ¡Saludos!

Linux Básico: cómo listar archivos.

En el sistema operativo Linux, se usa el comando ls desde una terminal, para listar los archivos contenidos en un directorio. El comando ls tiene varias opciones según cómo queramos mostrar el listado de archivos:

Listar archivos en Linux en formato largo.

Usamos la opción -l del comando ls para listar archivo en formato largo, es decir, para que muestre los permisos, el propietario, el grupo, el tamaño en bytes, la fecha de creación y el nombre del archivos entre otros datos. Por defecto los archivo son listados en orden alfabético:

Si deseamos listar los archivos en orden contrario al alfabético, agregamos la opción -r al comando -ls:

Listar archivos ordenados por fecha en Linux.

Si queremos mostrar los archivos ordenados por fecha de creación utilizamos la opción -t para indicarle que queremos ordenarlo por tiempo (fecha). Por defecto lista primero los archivos con fecha más reciente y al final, los más antiguos:

Para listar los archivos en el orden contrario es decir, primero los más antiguos y al final los más recientes, agregamos la opción -r antes vista.

Listar archivos ordenados por tamaño en Linux.

Ahora queremos ordenar el listado de archivos por tamaño. Para eso empleamos la opción -S del comando ls de la forma siguiente:

Por defecto, el orden del listado es del archivo de mayor tamaño al de menor tamaño. Si queremos lo contrario, primero los de menor tamaño y al final los de mayor tamaño, le agregamos la opción -r:

Listar todos los archivos de un directorio y sus subdirectorios en Linux.

Ahora queremos listar todos los archivos de un directorio como los archivos que se encuentran en sus subdirectorios. Para ello utilizamos la opción -R contenidos en el directorio:

Como se puede observar en la imagen anterior, además de listar los archivos del directorio, también muestra los archivos contenidos en los directorios uno y dos contenidos en el directorio actual. A este comando se le pueden agregar las opciones de ordenamiento que vimos anteriormente -t, -S y -r.

Listar los archivos ocultos en Linux.

Usamos la opción -a para listar todos los archivos incluyendo los archivos ocutos:

Como se puede observar en la imagen anterior, ahora aparecen además los archivos ocultos que antes no se mostraban, todos aquellos archivos que su nombre inicia con un punto: .bash_logout, .bash_profile, .bashrc, etc.

Existen más opciones del comando ls. Puede consultar esas opciones ejecutando el comando ls –help o man ls.

Espero les sirva esta entrada. ¡Hasta la próxima!

Error pip3

Error al ejecutar pip3 en Ubuntu 18.04: ImportError: cannot import name ‘main’.

Al intentar conocer la versión de mi pip3 instalado, Ubuntu 18.04 me arrojaba el siguiente error:

$ pip3 –version
Traceback (most recent call last):
File “/usr/local/bin/pip3”, line 7, in
from pip import main
ImportError: cannot import name ‘main’

Al parecer es un bug que salta al actualizar a la versión 10 de pip3. Para solucionarlo ejecuté las siguientes instrucciones que encontré aquí (también explica la causa) en una terminal:

sudo python3 -m pip uninstall pip && sudo apt install python3-pip –reinstall

Una vez ejecutada debe funcionar bien este comando y no arrojar ningún error.

¡Saludos!