GNU/Linux >> Tutoriales Linux >  >> Linux

El comando del árbol de Linux limita el número de archivos que se muestran en cada directorio.

Aquí hay un ejemplo de trabajo con el código python que citó:

Uso:tree.py -f [file limit] <directory>

Si se especifica un número para -f [límite de archivo] entonces ... <additional files> se imprime y los demás archivos se omiten. Sin embargo, no se deben omitir los directorios adicionales. Si el límite de archivos se establece en 10000 (predeterminado), esto actúa como sin límite

#! /usr/bin/env python
# tree.py
#
# Written by Doug Dahms
# modified by glallen @ StackExchange
#
# Prints the tree structure for the path specified on the command line

from os import listdir, sep
from os.path import abspath, basename, isdir
from sys import argv

def tree(dir, padding, print_files=False, limit=10000):
    print padding[:-1] + '+-' + basename(abspath(dir)) + '/'
    padding = padding + ' '
    limit = int(limit)
    files = []
    if print_files:
        files = listdir(dir)
    else:
        files = [x for x in listdir(dir) if isdir(dir + sep + x)]
    count = 0
    for file in files:
        count += 1
        path = dir + sep + file
        if isdir(path):
            print padding + '|'
            if count == len(files):
                tree(path, padding + ' ', print_files, limit)
            else:
                tree(path, padding + '|', print_files, limit)
        else:
            if limit == 10000:
                print padding + '|'
                print padding + '+-' + file
                continue
            elif limit == 0:
                print padding + '|'
                print padding + '+-' + '... <additional files>'
                limit -= 1
            elif limit <= 0:
                continue
            else:
                print padding + '|'
                print padding + '+-' + file
                limit -= 1

def usage():
    return '''Usage: %s [-f] [file-listing-limit(int)] <PATH>
Print tree structure of path specified.
Options:
-f          Print files as well as directories
-f [limit]  Print files as well as directories up to number limit
PATH        Path to process''' % basename(argv[0])

def main():
    if len(argv) == 1:
        print usage()
    elif len(argv) == 2:
        # print just directories
        path = argv[1]
        if isdir(path):
            tree(path, ' ')
        else:
            print 'ERROR: \'' + path + '\' is not a directory'
    elif len(argv) == 3 and argv[1] == '-f':
        # print directories and files
        path = argv[2]
        if isdir(path):
            tree(path, ' ', True)
        else:
            print 'ERROR: \'' + path + '\' is not a directory'
    elif len(argv) == 4 and argv[1] == '-f':
        # print directories and files up to max
        path = argv[3]
        if isdir(path):
            tree(path, ' ', True, argv[2])
        else:
            print 'ERROR: \'' + path + '\' is not a directory'
    else:
        print usage()

if __name__ == '__main__':
    main()

Cuando se ejecuta, debería producir un resultado similar a:

[email protected] /usr/share/doc $ python /tmp/recipe-217212-1.py -f 2 . | head -n 40
+-doc/
  |
  +-libgnuradio-fft3.7.2.1/
  | |
  | +-copyright
  | |
  | +-changelog.Debian.gz
  |
  +-libqt4-script/
  | |
  | +-LGPL_EXCEPTION.txt
  | |
  | +-copyright
  | |
  | +-... <additional files>
  |
  +-xscreensaver-gl/
  | |
  | +-copyright
  | |
  | +-changelog.Debian.gz
  | |
  | +-... <additional files>

Uno puede usar tree --filelimit=N para limitar el número de subdirectorios/archivo para mostrar. Desafortunadamente, esto no abrirá el directorio que tiene más de N subdirectorios y archivos.

Para casos simples, cuando tiene varios directorios y la mayoría tiene demasiados (digamos> 100) archivos, puede usar tree --filelimit=100 .

.
├── A1
│   ├── A2
│   ├── B2
│   ├── C2 [369 entries exceeds filelimit, not opening dir]
│   └── D2 [3976 entries exceeds filelimit, not opening dir]
├── B1
│   └── A2
│       ├── A3.jpeg
│       └── B3.png
└── C1.sh

Nota , si A1/C2 tiene un subdirectorio A3, no se mostrará.

PD Esta no es una solución completa, pero será más rápida para algunos.


Linux
  1. Cómo aumentar el número de límites de archivos abiertos en Linux

  2. Cómo encontrar el número de archivos en un directorio y subdirectorios

  3. Comando ls de Linux - Lista de archivos

  4. Comando mcopy en Linux

  5. Comando de mover directorio de Linux

Cómo listar archivos recursivamente en Linux

Cómo contar archivos en el directorio en Linux

Contar el número de archivos en un directorio en Linux

Cómo contar el número de archivos en un directorio en Linux

Comando ls en Linux/UNIX

Linux:busque el número de archivos en un directorio y subdirectorios