File: tagpix/examples/ls2.py

File: tagpix/examples/ls2.py

#!/usr/bin/env python3
"""
==============================================================================
Simple custom recursive ls: shows structure and links, with improved support 
for hidden files, and platform-neutral sort order. '-a' shows any ".*" too 
(with "_" and space so "." visible), and folder items are always sorted as 
case-significant+ascending. Run as "ls2.py <folder> [-a]" where <folder>
is the root of the tree to be listed:
 /somedir$ /Code/ls2.py test1 -a
 ___ test1
 ______ .DS_Store
 ______ dirlink => dir
 ______ file
 ______ filelink => file
 ______ nestedfilelink => dir/nestedfile
 ______ test1/dir
 _________ .other
 _________ nestedfile
The output is substantially more readable than a Unix "ls -aR" equivalent.
==============================================================================
"""
from __future__ import print_function # use py 3.X or 2.X
import os, sys
all = '-a' in sys.argv[2:] # past script, folder
unixhiddens = ('.', '._') # ignore if not -a
ichar = '_'
level = 0
for (here, subs, files) in os.walk(sys.argv[1]):
 indent = len(here.split(os.sep))
 print(ichar * (indent*3), here)
 for s in sorted(subs):
 if not all and s.startswith(unixhiddens):
 continue
 sp = os.path.join(here, s)
 if os.path.islink(sp):
 print(ichar * ((indent+1)*3), s, '=>', os.readlink(sp))
 for f in sorted(files):
 if not all and f.startswith(unixhiddens):
 continue
 fp = os.path.join(here, f)
 if os.path.islink(fp):
 print(ichar * ((indent+1)*3), f, '=>', os.readlink(fp))
 else:
 print(ichar * ((indent+1)*3), f)



AltStyle によって変換されたページ (->オリジナル) /