fork download
  1. require 'pathname'
  2.  
  3. Pathname('/proc/').children.group_by(&:ftype).each do |type, files|
  4. files.first(10).each_with_index do |file, index|
  5. lambda do |file, type|
  6. "%-30s%-10s" % [file, type]
  7. end
  8. .tap do |printer|
  9. puts printer.call "path", "type" if index.zero?
  10.  
  11. puts printer.call file, "%s (%s)" % [type, files.size]
  12. end
  13. end
  14.  
  15. (files.size - 10).tap do |remain|
  16. if remain > 0
  17. puts "(another #{remain})\n\n"
  18. else
  19. puts
  20. end
  21. end
  22. end
Success #stdin #stdout 0.01s 6608KB
stdin
Standard input is empty
stdout
path                          type      
/proc/fb                      file (45) 
/proc/dma                     file (45) 
/proc/keys                    file (45) 
/proc/kmsg                    file (45) 
/proc/misc                    file (45) 
/proc/mtrr                    file (45) 
/proc/stat                    file (45) 
/proc/iomem                   file (45) 
/proc/kcore                   file (45) 
/proc/locks                   file (45) 
(another 35)

path                          type      
/proc/fs                      directory (9)
/proc/bus                     directory (9)
/proc/irq                     directory (9)
/proc/sys                     directory (9)
/proc/tty                     directory (9)
/proc/acpi                    directory (9)
/proc/driver                  directory (9)
/proc/sysvipc                 directory (9)
/proc/1506                    directory (9)

path                          type      
/proc/net                     link (4)  
/proc/mounts                  link (4)  
/proc/self                    link (4)  
/proc/thread-self             link (4)