In another thread (What's the easiest way to sort a list like this) someone asked if we had "GNU ls" on the system because it would provide a solution. We do NOT have GNU ls installed but it got me thinking:

  1. when you install things like "GNU ls" does it just install "ls" or does it contain replacements for a suite of Unix commands?

  2. Would GNU ls support all the flags that the base-O/S ls command supports?

The second question is because we have a lot of ksh93 scripts on our AIX systems, and I want to ensure they continue to function as expected. If I installed GNU ls, would I just use a fully-qualified path to GNU ls when I needed it's functionality in a given ksh script, say /opt/GNU/ls? Is that how one would typically add/use a GNU command on a mature system?

  • Taken from ibm.com/developerworks/community/forums/html/… : Download and install the GNU Coreutils from AIX Toolbox for Linux Applications www-03.ibm.com/systems/p/os/aix/linux/download.html This is going to install many commands under the /usr/linux/bin path Dec 7 '17 at 15:43
  • Many of the packages in the AIX Toolbox for Linux Applications install to a separate tree, such as /opt/freeware, and create symlinks to /usr/bin or /bin. I don't see an ls package there. If you compile from source, then you'd be free to place it anywhere you like.
    – Jeff Schaller
    Dec 7 '17 at 15:43
  • Some package or ports systems prefix the GNU commands with g so you would run gls which would help avoid confusion with the base OS version of the program, assuming a PATH set to contain sets of utilities.
    – thrig
    Dec 7 '17 at 16:16
  • @JeffSchaller, has ksh93 been built with the ls builtin on AIX (command /opt/ast/bin/ls --man)? It is at least as feature full as GNU ls. Dec 7 '17 at 16:35
  • @ Stéphane: command /opt/ast/bin/ls --man results in: ksh93: /opt/ast/bin/ls: not found. With a $SHELL of /usr/bin/ksh93, type ls results in: ls is /usr/bin/ls
    – Jeff Schaller
    Dec 7 '17 at 16:43

You can build GNU coreutils from source, and manually copy the resulted ls(1) command as another name, under PATH, such as /usr/bin/gls.

For example the simplest steps are:

./configure <configure-options-you-may-want>
cp src/ls /usr/bin/gls

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.