Digamos que en mi carpeta ~/list
tengo una gran cantidad de carpetas, cada una con sus propias subcarpetas y subcarpetas, etc., y hay muchos archivos casi en cada nivel. Sin embargo, algunos de estos archivos y carpetas están vacíos, entonces, ¿cómo puedo buscar recursivamente a través de todos ellos para encontrar los archivos y carpetas vacíos? Y luego haga que se muestren en una lista de ubicaciones de archivos para que sepa dónde está cada uno (también debe quedar claro cuál es un archivo y cuál es una carpeta porque no todos los archivos tienen extensiones de archivo). Estoy ejecutando Ubuntu GNOME 15.10 con GNOME 3.18.
Tenga en cuenta que también sería muy útil si también me dijera si un archivo parecía vacío pero no lo estaba (por ejemplo, si tenía espacios o saltos de línea o algo así). Y diferenciaría entre un archivo vacío real y uno que solo parece vacío en la salida.
Respuestas:
Desde
man find
Entonces, para encontrar archivos y directorios vacíos, es suficiente hacer
Para indicar el tipo, puede usar el
%y
especificador de formato de salidap.ej
o hacer uso de un programa externo como
ls
, que incluye una--classify
opciónes decir
Si su definición de 'vacío' se expande para incluir archivos que contienen solo caracteres de espacio en blanco, entonces se vuelve más complicado, y más computacionalmente intensivo, ya que ahora necesita abrir al menos cualquier archivo no vacío y examinar su contenido. La forma más eficiente en que puedo pensar fuera de mi cabeza sería algo así como
(ya sea vacío, O un archivo Y grep no detecta al menos un carácter que no esté en blanco). Probablemente hay una mejor manera sin embargo.
fuente
De
~/list
carpeta:para listar directorios vacíos y
para listar archivos vacíos.
para enumerar carpetas y archivos vacíos, incluidos espacios en blanco y líneas vacías
fuente
[ `grep -c [[:alnum:]] "{}"` -eq 0 ]
dejará pasar archivos que contengan solo caracteres que no estén en el[A-Za-z0-9]
conjunto.