Saturday, May 28, 2016

10 Simple ways to work with the `ls` command in Linux


So, today we'll work with the `ls` command in Linux
& see how it can help us to know about directories & files on our system.

`ls` helps us list the contents of the directory/folder that we are currently in, or that we specify as a parameter to `ls`, and lets us understand about other details of the files/directories like, the permissions on them, owners/groups they belong to, 
last modified times on them, their size with some other functionalities.

Listing names of the contents in the current folder

ls 
 1.txt  b.b  bench  bench_apache  bench_nginx  bench.sh


Listing contents with summary (Name and size in Kilobytes) 

ls -s
total 20
0 1.txt  4 b.b  4 bench  4 bench_apache  4 bench_nginx  4 bench.sh

Listing contents with long list format (Name and size in Kilobytes) (It is kilobytes)

ls -l
total 20
-rw-rw-r-- 1 ash ash    0 May 22 19:04 1.txt
drwxrwxr-x 2 ash ash 4096 May 29 00:03 b.b
drwxrwxr-x 3 ash ash 4096 May 22 19:30 bench
-rw-r--r-- 1 ash ash 1401 Mar 10  2014 bench_apache
-rw-r--r-- 1 ash ash 1401 Mar 10  2014 bench_nginx
-rwx------ 2 ash ash  243 Mar 10  2014 bench.sh

Listing in long listing & human readable format

ls -lh
-rw-rw-r-- 1 ash ash    0 May 22 19:04 1.txt
drwxrwxr-x 2 ash ash 4.0K May 29 00:03 b.b
drwxrwxr-x 3 ash ash 4.0K May 22 19:30 bench
-rw-r--r-- 1 ash ash 1.4K Mar 10  2014 bench_apache
-rw-r--r-- 1 ash ash 1.4K Mar 10  2014 bench_nginx
-rwx------ 2 ash ash  243 Mar 10  2014 bench.sh

Listing in long listing & human readable format

ls -lsh
total 20K
   0 -rw-rw-r-- 1 ash ash    0 May 22 19:04 1.txt
4.0K drwxrwxr-x 2 ash ash 4.0K May 29 00:03 b.b
4.0K drwxrwxr-x 3 ash ash 4.0K May 22 19:30 bench
4.0K -rw-r--r-- 1 ash ash 1.4K Mar 10  2014 bench_apache
4.0K -rw-r--r-- 1 ash ash 1.4K Mar 10  2014 bench_nginx
4.0K -rwx------ 2 ash ash  243 Mar 10  2014 bench.sh

Ignoring files & only listing directories

(Caveat: This will ignore any file/directory which contains a .(dot) in its name. Sometime, directories contain a dot in their name so they might get ignored as well so watch out, and sometimes, files do not contain a dot in their name)
ls -lI "*.*"
drwxrwxr-x 3 ash ash 4096 May 22 19:30 bench
-rw-r--r-- 1 ash ash 1401 Mar 10  2014 bench_apache
-rw-r--r-- 1 ash ash 1401 Mar 10  2014 bench_nginx


Listing files and folders in the current directory {Having a dot (.) in their names}

ls *.*
1.txt  bench.sh

b.b:
b1.txt


List the files & folders in the current directory's, & further files/folders inside the folders in current directory (to Depth 1)

ls *
1.txt  bench_apache  bench_nginx  bench.sh

b.b:
b1.txt

bench:
b  b.txt

List all files along with hidden files

ls -a
.  ..  1.txt  b.b  bench  bench_apache  bench_nginx  bench.sh  .hidden

List Files & Folder contents starting with a Name/Pattern/Alphabet

Eg. List all the files starting with the alphabet 'b' & folder contents starting with the alphabet 'b'
ls b*
bench_apache  bench_nginx  bench.sh

b.b:
b1.txt

bench:
b  b.txt

No comments: