Bash globbing files only?

Cameron Simpson cs at zip.com.au
Tue Jan 30 02:45:52 UTC 2007


On 29Jan2007 21:29, Jacques B. <jjrboucher at gmail.com> wrote:
| >Try this:
| >
| >  set -x
| >  ls [^.]*/
| >  ls -d [^.]*/
| >  ls -d */
| >
| >It would be interesting to see what the differences are, if any.
| 
| Thanks for the tip & additional info.  The results of the above after
| doing unalias ls and set -x:
| 
| (directory names neutered slightly to protect the youngs)
| 
| ls [^.]*/
| + ls 'My son'\''s Passion/' Desktop/ download/ 'Final Material/'
| ftools/ images/ 'Linux Forensic Documents/' LPIC/ 'Other son -
| Profession/' Photos/ PicasaDocuments/ Presentations/ scripts/ thumb/
| 
| followed by the content of each of the above folders

So, as expected then, yes?

| The other two yield identical results, being:
| 
| + ls -d 'My son'\''s Passion/' Desktop/ download/ 'Final Material/'
| ftools/ images/ 'Linux Forensic Documents/' LPIC/ 'Other son -
| Profession/' Photos/ PicasaDocuments/ Presentations/ scripts/ thumb/
| 
| followed by the directory names above.

Good, also as expected.

| I like that trace feature - lets you see how the globbing gets
| expanded.  So we see that the original syntax yields the content of
| the directories, whereas as expected the -d only lists the directory
| names.
| Not to beat a dead horse, but I hate not understanding why something
| works (or doesn't work).  Why is it working on yours but not mine?
| Are you getting the same trace output for the ls [^.]*/ command, but
| without listing the contents of those directories, only the directory
| names?

I get what you get. We have established A) that "*/" and "[^.]*/"
are equivalent and B) that -d prevents burrowing into the directories.
We should have added:

  ls */

to the tests above to try all four permutations.

Does it make sense now?
-- 
Cameron Simpson <cs at zip.com.au> DoD#743
http://www.cskk.ezoshosting.com/cs/

Kilimanjaro is a pretty tricky climb. Most of it's up, until you reach the
very, very top, and then it tends to slope away rather sharply.




More information about the fedora-list mailing list