Это очень зависит от приложения. Редактор должен быть настроен таким образом, чтобы он генерировал имена файлов с добавленной точкой, а не с добавленной тильдой. Это может быть вообще невозможно в некоторых редакторах, которые позволяют указывать только суффикс резервной копии .
Однако, если вас беспокоит просмотр файлов резервных копий, вы можете хотя бы получить ls
, чтобы не отображать их.
С GNU ls
(из GNU coreutils) вы можете использовать параметр -B
или - ignore-backups
. При этом явно не будут перечислены файлы, соответствующие * ~
. Это эквивалентно -I '* ~'
или - ignore = '* ~'
.
В файле инициализации оболочки ( ~ / .bashrc
для bash
) добавьте либо
alias ls='command ls -B'
, либо
function ls { command ls -B "$@"; }
. Если файлы резервных копий не отображаются в файловых менеджерах, возможно, тоже нужно сделать, но то, как вы это сделаете (если возможно), зависит от используемого файлового менеджера.
Следующее решение использует встроенные функции только для преобразования числа в двоичную форму:
#! /bin/sh
E=[24680] # even nums
O=[13579] # odd nums
lookuptbl() {
case $1 in
$E[01]* ) echo 0 ;; $E[23]* ) echo 1 ;;
$E[45]* ) echo 2 ;; $E[67]* ) echo 3 ;;
$E[89]* ) echo 4 ;; $O[01]* ) echo 5 ;;
$O[23]* ) echo 6 ;; $O[45]* ) echo 7 ;;
$O[67]* ) echo 8 ;; $O[89]* ) echo 9 ;;
esac
}
divby2() {
set -- "0$1"
while case $1 in ? ) break ;; esac; do
set -- "${1#?}" "${2-}$(lookuptbl "$1")"
done
echo $2
}
dec2bin() {
case $1 in *[!0]* ) :;; * ) echo 0; return ;; esac
while :
do
case $1 in *[!0]* ) :;; * ) break;; esac
case $1 in
*$E ) set -- "$(divby2 "$1")" "0${2-}" ;;
*$O ) set -- "$(divby2 "$1")" "1${2-}" ;;
esac
done
echo "$2"
}
# And then... (assuming pure number given from command line)
num=${1:-304}
dec2bin "$num"
100110000
С ksh
или зш
:
$ typeset -i2 n=304
$ echo "$n"
2#100110000
$ echo "${n#*#}"
100110000
С зш
:
$ echo $(([##2]304))
100110000
С кш93
:
$ printf '%..2d\n' 304
100110000