What does the l command do?

Loading...

What does the l command do?

There is a command l available on my machine which appears to do nothing.  which l also produces no output. Is this a real command, and does it actually do anything?

Solutions/Answers:

Answer 1:

l is an alias for ls -CF, which behaves differently from plain ls.

-C

-C makes ls print output in column form. When stdout is a terminal (rather than being redirected to a file or non-terminal device, or piped to another command), -C is implied. So running ls -C is the same as running ls. But they are not equivalent when ls is redirected or piped. For example:

ek@Kip:~/firefox$ ls
application.ini             libfreebl3.chk    libxpcom.so
blocklist.xml               libfreebl3.so     libxul.so
chrome                      libmozalloc.so    mozilla-xremote-client
chrome.manifest             libmozsqlite3.so  omni.ja
components                  libnspr4.so       platform.ini
crashreporter               libnss3.so        plugin-container

...

ek@Kip:~/firefox$ ls | less

application.ini
blocklist.xml
chrome
chrome.manifest
components
crashreporter

...

In contrast, ls -C (or -l) outputs in column form regardless of what kind of device stdout is. ls -C | less looks like the top output (but paged by less, of course).

-F

The main visible difference between ls and l is due to the -F flag, which causes ls to append symbolic suffixes (called indicators) to the entries it displays. These indicators identify what kind of file or directory they are.

Compare this to the output of the first ls command above:

ek@Kip:~/firefox$ ls -F
application.ini             libfreebl3.chk     libxpcom.so*
blocklist.xml               libfreebl3.so*     libxul.so*
chrome/                     libmozalloc.so*    mozilla-xremote-client*
chrome.manifest             libmozsqlite3.so*  omni.ja
components/                 libnspr4.so*       platform.ini
crashreporter*              libnss3.so*        plugin-container*

...

Here:

  • / means the entry is a directory.
  • * means the entry is a normal file and is executable (i.e., has executable permissions).
  • The absence of any indicator means the entry is a normal file that is not executable.

There are several other indicators:

The --classify flag and --indicator-style=classify are equivalent to -F.

Source: GNU Coreutils manual, Section 10.1.5 General output formatting

Answer 2:

Actually both ls and l are equal

raja@badfox:~/Pictures$ l
des.png
Screenshot from 2012-09-22 19:37:03.png
Screenshot from 2012-09-22 19:37:11.png
Screenshot from 2012-09-22 19:37:12.png
Untitled.png
raja@badfox:~/Pictures$ ls
des.png
Screenshot from 2012-09-22 19:37:03.png
Screenshot from 2012-09-22 19:37:11.png
Screenshot from 2012-09-22 19:37:12.png
Untitled.png

why means there is a in-built system alias causing for this . if you want to see , open your terminal and type alias then you will get output like this

raja@badfox:~/Pictures$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias lock='gnome-screensaver-command -l'
alias ls='ls --color=auto'
alias sms='php .sms.php'
raja@badfox:~/Pictures$ 

Answer 3:

When in doubt, type l:

l is aliased to `ls -alF'

(see also What does the la command do)

Our Awesome Free Tools

References

Loading...