I'm submitting this case on behalf of Jason King, which proposes to add some familiarity enhancements to our /bin/ls command. Patch binding is requested. Template Version: @(#)onepager.txt 1.31 07/08/08 SMI 1. Introduction 1.1. Project/Component Working Name: ls enhancements 1.2. Name of Document Author/Supplier: Jason King 1.3. Date of This Document: 03/01/2009 1.4. Name of Major Document Customer(s)/Consumer(s): 1.4.1. The Community you expect to review your project: ON 1.4.2. The ARC(s) you expect to review your project: 1.5. Email Aliases: 1.5.2. Responsible Engineer: 1.5.4. Interest List: on-discuss@opensolaris.org 2. Project Summary 2.1. Project Description: Enhance ls to provide a number of features to increase compatibility with other ls implementations (with an emphasis on GNU ls). This is a combination of new flags and long aliases for existing flags. The project is requesting patch binding. 2.2. Risks and Assumptions: 3. Business Summary 3.1. Problem Area: The Solaris ls is missing a number of features found in other ls implementations. Color output is an especially popular missing feature. 3.2. Market/Requester: Opensolaris community 3.3. Business Justification: The current situation is a worst of all worlds situation. Common features found on other OSes are missing in Solaris ls. GNU ls does not support a number of key features in Solaris (NFS/ZFS ACLs and extended attributes). This leaves a user to choose one or the other. This project proposes to enhance Solaris to support a number of common GNU ls features (detailed below) 3.4. Competitive Analysis: 3.5. Opportunity Window/Exposure: 3.6. How will you know when you are done?: Solaris ls will support the listed features below. 4. Technical Description: 4.1. Details: The following flags will be added to ls(1) (/usr/bin/ls, /usr/xpg4/bin/ls, and /usr/xpg6/bin/ls): Aliases for existing flags: --all Alias for -a --almost-all Alias for -A --escape Alias for -b --classify Alias for -F --human-readable Alias for -h --dereference Alias for -L --dereference-command-link Alias for -H --full-time Alias for -E --inode Alias for -i --numeric-uid-gid Alias for -n --no-group Alias for -o --hide-control-chars Alias for -q --reverse Alias for -r --recursive Alias for -R --size Alias for -s New flags: -w=NN, --width=NN Force output width to NN columns. --block-size=NN Output sizes as multiples of NN. The suffixes 'kKmMgGtTpPeE' can be appended to scale the block size. -k Equivalent to --block-size=1024. --si Like -h, except powers of 10 are used. --color[=WHEN], --colour[=WHEN] Display output using colors. Colors are specified by the environment variable LS_COLORS. If not set, a default set of colors used. The format of LS_COLORS is compatible with GNU ls. WHEN is an optional flag indicating when color output should be used. Valid values are: always,yes,force: Always output color auto,tty,if-tty: Display color when run from a tty never,no,none: Never display color. The default setting is 'never'. --file-type Like the -F / --classify option, except * is not appended to executables. --time-style=[STYLE] Use STYLE as the output format for times. Does not imply -l option (but will not have any visible impact without -l). The notion of 'new' and 'old' files are unchanged from the current version of ls. Values of STYLE are: full-iso: Full iso output for all files, like -E long-iso: Use '%F %R' format for all files (YYYY-mm-dd HH:MM) iso: Use '%F' (YYYY-mm-dd) for older files and '%m-%d %H:%M' (mm-DD HH:MM) for newer files. locale: Use the locale defined format for old and new files (the default). +FMT: Use a custom format. Values of FMT are the same as strftime(3c). If a newline is embedded in FMT, then the first line is used for older files while the second line is used for newer files. If no newline is embedded, the single format is used for all files. Argument processing is done via getopt_long_only(3c) to prevent standards conformance issues. 4.2. Bug/RFE Number(s): 1122699 *ls* ls: would like to have -k option like du does 6803941 Make /usr/bin/ls more compatible with gnu ls 4.3. In Scope: 4.4. Out of Scope: 4.5. Interfaces: External: libtermcap 4.6. Doc Impact: Man page changes for ls(1) with changes included with case. 4.7. Admin/Config Impact: Additional cmdline flags only. 4.8. HA Impact: None 4.9. I18N/L10N Impact: Additional messages. 4.10. Packaging & Delivery: None 4.11. Security Impact: None 4.12. Dependencies: None