ls_usage
Table of Contents
sort ls output by filename length
ls --color=never --indicator-style=none | awk '{print length, $0}' | sort -n | cut -d" " -f2-
To see it in action, create some files
% touch a ab abc
and some directories
% mkdir d de def
Output of the normal ls command
% ls a ab abc d/ de/ def/
Output from the proposed command
% ls --color=never --indicator-style=none | awk '{print length, $0}' | sort -n | cut -d" " -f2- a d ab de abc def
Show file date in different date formats
tags | YYYY-MM-DD, YYYYMMDD, YYYYMMDD_HHMMSS
Use one of
--time-style='+%Y%m%d_%H%M%S' --time-style='+%Y-%m-%d' --time-style='+%Y%m%d'
For example
% ls -l --time-style='+%Y%m%d_%H%M%S' ~/.vimrc -rwx------ 1 rajulocal rajulocal 1112 20201017_141554 /home/rajulocal/.vimrc* % ls -l --time-style='+%Y-%m-%d' ~/.vimrc -rwx------ 1 rajulocal rajulocal 1112 2020-10-17 /home/rajulocal/.vimrc* % ls -l --time-style='+%Y%m%d' ~/.vimrc -rwx------ 1 rajulocal rajulocal 1112 20201017 /home/rajulocal/.vimrc*
indicators
“ls -F” appends indicators */=>@| to filenames.
- * means executable.
- / means directory.
- = means socket.
- > means door.
- @ means symbolic link (or that the file has extended attributes).
- | means named pipe.
Ref:- https://unix.stackexchange.com/questions/82357/what-do-the-symbols-displayed-by-ls-f-mean
only show filename and modification time
ls -al | cut -d ' ' -f 6-
Another way (using find):
find -maxdepth 1 -type f -printf "%TY %Tb %Td %TH:%TM\t%p\n"
To sort the files based on timestamp (reverse chronological order)
find -maxdepth 1 -type f -printf "%T+#%TY %Tb %Td %TH:%TM\t%p\n" | sort -rn| cut -d# -f2-
The %T+ is used to sort the output properly and gets removed by cut afterwards.
ls_usage.txt · Last modified: 2022/07/22 23:34 by raju