=== Remove character from filenames === To remove the charachters **" < > : * | ? ** from filenames in the current folder (especially handy when files need to be placed on onedrive/windows share) for f in *; do mv -i "$f" "${f//[\"<>:\*\|\/\?]}"; done It's also possible to remove all spaces in filenames by including **[:space:]** in the string. for f in *; do mv -i "$f" "${f//[\"<>:\*\|\/\?[:space:]]}"; done === Colored prompt === Have a colored prompt for the user spanning two lines. * date and time in white * Path in blue color * branch in yellow * username and server in green * command in white [2022-11-04 20:09.15] ~ (master)[user@server]: $ The function fetches the branch name and the prompt dispays it. parse_git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/' } export PS1="\n[\\D{%Y-%m-%d %H:%M.%S}] \[\033[01;34m\]\w\[\033[00m\]\n\[\033[33m\]\$(parse_git_branch)\[\033[00m\]\[\033[01;32m\][\u@\h]\[\033[00m\]: \$ " For the root user maybe a red color for the username and server is better export PS1="\n[\\D{%Y-%m-%d %H:%M.%S}] \[\033[01;34m\]\w\[\033[00m\]\n\[\033[33m\]\$(parse_git_branch)\[\033[00m\]\[\033[01;31m\][\u@\h]\[\033[00m\]: \$ "