delorie.com/archives/browse.cgi | search |
X-Recipient: | archive-cygwin AT delorie DOT com |
X-Original-To: | cygwin AT cygwin DOT com |
Delivered-To: | cygwin AT cygwin DOT com |
DMARC-Filter: | OpenDMARC Filter v1.4.1 sourceware.org 795173858C39 |
Authentication-Results: | sourceware.org; |
dmarc=none (p=none dis=none) header.from=starwolf.com | |
Authentication-Results: | sourceware.org; spf=pass smtp.mailfrom=starwolf.com |
X-Spam-Checker-Version: | SpamAssassin 3.4.4 (2020-01-24) on |
server2.sourceware.org | |
X-Spam-Level: | |
X-Spam-Status: | No, score=-0.4 required=5.0 tests=BAYES_00, BODY_8BITS, |
KAM_DMARC_STATUS, NICE_REPLY_A, SPF_HELO_NONE, SPF_PASS, TXREP, | |
T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 | |
Subject: | Re: ls -C broken |
To: | L A Walsh <cygwin AT tlinx DOT org>, Thomas Wolff <towo AT towo DOT net> |
References: | <a57bb847-ac3e-7620-234c-1c3babc21fdf AT towo DOT net> |
<61FB4315 DOT 8040204 AT tlinx DOT org> | |
From: | Greywolf <greywolf AT starwolf DOT com> |
Message-ID: | <ddc3c9b7-5fd4-8a28-3651-ef28feeea911@starwolf.com> |
Date: | Thu, 3 Feb 2022 01:59:56 -0800 |
User-Agent: | Mozilla/5.0 (X11; NetBSD amd64; rv:78.0) Gecko/20100101 |
Thunderbird/78.12.0 | |
MIME-Version: | 1.0 |
In-Reply-To: | <61FB4315.8040204@tlinx.org> |
X-BeenThere: | cygwin AT cygwin DOT com |
X-Mailman-Version: | 2.1.29 |
List-Id: | General Cygwin discussions and problem reports <cygwin.cygwin.com> |
List-Unsubscribe: | <https://cygwin.com/mailman/options/cygwin>, |
<mailto:cygwin-request AT cygwin DOT com?subject=unsubscribe> | |
List-Archive: | <https://cygwin.com/pipermail/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-request AT cygwin DOT com?subject=help> |
List-Subscribe: | <https://cygwin.com/mailman/listinfo/cygwin>, |
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe> | |
Cc: | cygwin AT cygwin DOT com |
Errors-To: | cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com |
Sender: | "Cygwin" <cygwin-bounces+archive-cygwin=delorie DOT com AT cygwin DOT com> |
X-MIME-Autoconverted: | from base64 to 8bit by delorie.com id 213A0Fix007760 |
That would be rude on the part of GNU, that's for sure. Below, though, I don't see the use of -C explicitly. ls defaults to -C if output is to a terminal, and to -1 if not, as it has done for many years. I see a lot of red herrings in the explanations below as regarding column, tabs, expand, and numfmt. I don't think any of them come into play Which version of 'ls' is pulling this nonsense? On 2/2/22 6:51 PM, L A Walsh wrote: > On 2022/01/28 07:46, Thomas Wolff wrote: >> If I redirect output of `ls -C` (file / pipe), it used to produce >> well-formatted output in columns. >> Suddenly it produces garbage formatting instead. As `ls` itself is not >> new, maybe it's some library that breaks behaviour? >> Or even pty code?? Works on Cygwin 32-bit. Any idea? >> Thomas >> > --- > The authors of Gnu ls changed 'ls' defaults because "they can". > Old ls -C: > /bin/ls /proc Where is the -C? > 331 379 913      filesystems mounts     registry32 swaps   version > 332 500 cpuinfo  loadavg     net        registry64 sys > 335 731 cygdrive meminfo     partitions self       sysvipc > new ls -C: > /bin/ls /proc|cat Where is the -C? > 331 > 332 > 335 > 370 > 379 > 500 > 731 > 732 > 945 > 946 > cpuinfo > cygdrive > devices > filesystems > loadavg > meminfo > misc > mounts > net > partitions > registry > registry32 > registry64 > self > stat > swaps > sys > sysvipc > uptime > version > --- > with column: > law.Bliss> /bin/ls /proc|column (tabs mismatch) > 331  731  devices  net  stat > 332  732  filesystems partitions swaps > 335  952  loadavg  registry sys > 370  953  meminfo  registry32 sysvipc > 379  cpuinfo  misc   registry64 uptime > 500  cygdrive mounts   self   version > with column+expand -8: > s> /bin/ls /proc|column|expand -8 > 1021           379            devices        net            stat > 1022           500            filesystems    partitions     swaps > 331            731            loadavg        registry       sys > 332            732            meminfo        registry32     sysvipc > 335            cpuinfo        misc           registry64     uptime > 370            cygdrive       mounts         self           version > --- > several other tools no longer have settings to expand tabs to user-values > requiring the use of expand. > Formats of numeric output were also changed, requiring usage of 'numfmt' > This was all done to benefit script consistency at the expense of > users usability. It is expected that users can adapt to the computers. > by default, 'ls' will produce different output when it goes to the > screen vs. when > it goes to a pipe. When 'ls' goes to a pipe it is required to only use > 1 column. Not strictly "required" but has done since forever. > To get the behavior you want, try piping through 'column' first (see > 'man (1) column). > > They made many changes in core-utils to make automated shell scripts more > consistent at the expense of user-usability where they now suggest using > pipes into other utilities to get previous output GNU is getting too big for their britches. This is completely out of line. > Try using ls|column. Of course ls also used to expand tabs to every 8 > characters > and it no longer does that. So you must use another util 'tabs' to set > tabs to every 8th column (ls's standard tab setting) > -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |