automate/020_eza.sh

112 lines
5.5 KiB
Bash

# the debian package is missing the zsh completitons
# sudo apt install eza
DEST=${1:-/etc/skel}
KEY_DIR=/etc/apt/trusted.gpg.d
sudo mkdir -p ${KEY_DIR}
wget -qO- https://raw.githubusercontent.com/eza-community/eza/main/deb.asc | sudo gpg --dearmor -o ${KEY_DIR}/gierens.gpg
cat <<-EOF | sudo tee /etc/apt/sources.list-available/gierens.list
deb [signed-by=${KEY_DIR}/gierens.gpg] http://deb.gierens.de stable main
EOF
sudo ln -sf /etc/apt/sources.list-available/gierens.list /etc/apt/sources.list.d/gierens.list
sudo chmod 644 ${KEY_DIR}/gierens.gpg /etc/apt/sources.list.d/gierens.list
sudo apt update
sudo apt install -y eza
# conflicts with lsd
#ALIAS_FILE="${DEST}/${ALIAS_DIR}/003_eza.sh"
#cat > "${ALIAS_FILE}" <<-'EOF'
# if [ -x /usr/bin/lsd ]; then
# alias lsd="/usr/bin/eza"
# # alias 'ls'="eza"
# alias 'll'="eza -a"
# alias 'lt'="eza --tree"
# fi
#EOF
#Usage:
# eza [options] [files...]
#
#META OPTIONS
# --help show list of command-line options
# -v, --version show version of eza
#
#DISPLAY OPTIONS
# -1, --oneline display one entry per line
# -l, --long display extended file metadata as a table
# -G, --grid display entries as a grid (default)
# -x, --across sort the grid across, rather than downwards
# -R, --recurse recurse into directories
# -T, --tree recurse into directories as a tree
# -X, --dereference dereference symbolic links when displaying information
# -F, --classify=WHEN display type indicator by file names (always, auto, never)
# --colo[u]r=WHEN when to use terminal colours (always, auto, never)
# --colo[u]r-scale highlight levels of 'field' distinctly(all, age, size)
# --colo[u]r-scale-mode use gradient or fixed colors in --color-scale (fixed, gradient)
# --icons=WHEN when to display icons (always, auto, never)
# --no-quotes don't quote file names with spaces
# --hyperlink display entries as hyperlinks
# --absolute display entries with their absolute path (on, follow, off)
# -w, --width COLS set screen width in columns
#
#
#FILTERING AND SORTING OPTIONS
# -a, --all show hidden and 'dot' files. Use this twice to also
# show the '.' and '..' directories
# -A, --almost-all equivalent to --all; included for compatibility with `ls -A`
# -d, --list-dirs list directories as files; don't list their contents
# -L, --level DEPTH limit the depth of recursion
# -r, --reverse reverse the sort order
# -s, --sort SORT_FIELD which field to sort by
# --group-directories-first list directories before other files
# -D, --only-dirs list only directories
# -f, --only-files list only files
# -I, --ignore-glob GLOBS glob patterns (pipe-separated) of files to ignore
# --git-ignore ignore files mentioned in '.gitignore'
# Valid sort fields: name, Name, extension, Extension, size, type,
# modified, accessed, created, inode, and none.
# date, time, old, and new all refer to modified.
#
#LONG VIEW OPTIONS
# -b, --binary list file sizes with binary prefixes
# -B, --bytes list file sizes in bytes, without any prefixes
# -g, --group list each file's group
# --smart-group only show group if it has a different name from owner
# -h, --header add a header row to each column
# -H, --links list each file's number of hard links
# -i, --inode list each file's inode number
# -m, --modified use the modified timestamp field
# -M, --mounts show mount details (Linux and Mac only)
# -n, --numeric list numeric user and group IDs
# -O, --flags list file flags (Mac, BSD, and Windows only)
# -S, --blocksize show size of allocated file system blocks
# -t, --time FIELD which timestamp field to list (modified, accessed, created)
# -u, --accessed use the accessed timestamp field
# -U, --created use the created timestamp field
# --changed use the changed timestamp field
# --time-style how to format timestamps (default, iso, long-iso,
# full-iso, relative, or a custom style '+<FORMAT>'
# like '+%Y-%m-%d %H:%M')
# --total-size show the size of a directory as the size of all
# files and directories inside (unix only)
# --no-permissions suppress the permissions field
# -o, --octal-permissions list each file's permission in octal format
# --no-filesize suppress the filesize field
# --no-user suppress the user field
# --no-time suppress the time field
# --stdin read file names from stdin, one per line or other separator
# specified in environment
# --git list each file's Git status, if tracked or ignored
# --no-git suppress Git status (always overrides --git,
# --git-repos, --git-repos-no-status)
# --git-repos list root of git-tree status
# -@, --extended list each file's extended attributes and sizes
# -Z, --context list each file's security context