pavement

Ls

From FreeBSDwiki
(Difference between revisions)
Jump to: navigation, search
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Equivalent to Windows' ''dir''. Somebody should write a short article demonstrating its use and the more commonly used flags, and also a very brief treatise on how to use it with [[grep]] to good effect.
+
Equivalent to Windows' [[dir]]. [[ls]] is commonly used with [[flags]] or [[switches]] to alter its behaviour and/or output. Flags can be given as separate switches ('''ls -a -l /etc/''') but can be combined to make things faster ('''ls -la'''). [[ls]] takes pretty much the whole alphabet as a flag, but you'll likely never need or want to use more than say 5 or 6 different flags.
  
Most common flags:
+
==Most common flags:==
 
  -a -- lists ''all'' files, including hidden files
 
  -a -- lists ''all'' files, including hidden files
 
  -l -- gives long listing, including [[permissions]], [[owner]], [[group]] and size
 
  -l -- gives long listing, including [[permissions]], [[owner]], [[group]] and size
 +
-F -- shows a slash ('''/''') immediately after each directory,
 +
      an asterisk ('''*''') after  executable files,
 +
      an at sign ('''@''') after symbolic links,
 +
      an equals sign ('''=''') after sockets,
 +
      a percent sign ('''%''') after whiteouts,
 +
      and a [[pipe]] ('''|''') after a [[FIFO]].
 +
-R -- list subdirectories encountered recursively
 +
-h -- When used with the -l option, use unit suffixes for sizes so as to make them human-readable.
 +
      No, Virgina, you do not need to count everything in bytes.
 +
-c -- sort files by the last time file state was changed/modified
 +
-u -- sort files by the last time the file was accessed
 +
-G -- colorize output (different colors for different types of files)
  
[[ls]] can (and is) used in conjunction with [[grep]] by using a [[pipe]] to send [[ls]] output -- which can easily fill your screen with enough entries to make you cross-eyed -- to more easily find what you're looking for. To give an example, let's say you're looking for a file that begins with '''name''' in your /etc directory. Doing an '''ls /etc''' gives you far too many entries and '''la -l''' the same thing but scrolling past you even faster. You could do a
+
==Using ls with other programs==
  dave@samizdata# '''ls | more'''
+
[[ls]] can (and is) used in conjunction with [[grep]] by using a [[pipe]] to send [[ls]] output -- which can easily fill your screen with enough entries to make you cross-eyed -- to more easily find what you're looking for. To give an example, let's say you're looking for a file that begins with '''name''' in your /etc directory. Doing an '''ls /etc''' gives you far too many entries and '''ls -l''' the same thing but scrolling past you even faster. You could do a
 +
  dave@samizdata% '''ls | more'''
 
and look for all files that begin with '''name'''. But why waste your time going over each entry?
 
and look for all files that begin with '''name'''. But why waste your time going over each entry?
  dave@samizdata# '''ls -la | grep name'''
+
  dave@samizdata% '''ls -la | grep name'''
will give you a long list of all files that have '''name''' in them.
+
will give you a long list of all files that contain the string
 +
 
 +
==Changing the default behavior of ls==
 +
If you want to change the way '''ls''' behaves by default, you'll want to make an [[alias]] for '''ls''' including the arguments you want (for example, '''ls -Gah''' to provide colorized output, including dotfiles, with human-readable filesize info) in your shell configuration file.
 
   
 
   
  
 
[[Category:System Commands]]
 
[[Category:System Commands]]

Latest revision as of 18:25, 31 July 2005

Equivalent to Windows' dir. ls is commonly used with flags or switches to alter its behaviour and/or output. Flags can be given as separate switches (ls -a -l /etc/) but can be combined to make things faster (ls -la). ls takes pretty much the whole alphabet as a flag, but you'll likely never need or want to use more than say 5 or 6 different flags.

[edit] Most common flags:

-a -- lists all files, including hidden files
-l -- gives long listing, including permissions, owner, group and size
-F -- shows a slash (/) immediately after each directory, 
      an asterisk (*) after  executable files, 
      an at sign (@) after symbolic links, 
      an equals sign (=) after sockets, 
      a percent sign (%) after whiteouts, 
      and a pipe (|) after a FIFO.
-R -- list subdirectories encountered recursively
-h -- When used with the -l option, use unit suffixes for sizes so as to make them human-readable. 
      No, Virgina, you do not need to count everything in bytes.
-c -- sort files by the last time file state was changed/modified
-u -- sort files by the last time the file was accessed
-G -- colorize output (different colors for different types of files)

[edit] Using ls with other programs

ls can (and is) used in conjunction with grep by using a pipe to send ls output -- which can easily fill your screen with enough entries to make you cross-eyed -- to more easily find what you're looking for. To give an example, let's say you're looking for a file that begins with name in your /etc directory. Doing an ls /etc gives you far too many entries and ls -l the same thing but scrolling past you even faster. You could do a

dave@samizdata% ls | more

and look for all files that begin with name. But why waste your time going over each entry?

dave@samizdata% ls -la | grep name

will give you a long list of all files that contain the string

[edit] Changing the default behavior of ls

If you want to change the way ls behaves by default, you'll want to make an alias for ls including the arguments you want (for example, ls -Gah to provide colorized output, including dotfiles, with human-readable filesize info) in your shell configuration file.

Personal tools