arcanis |
|
Темы:
31
Сообщения:
1496
Участник с: 09 сентября 2012
|
я тут (потому что мудак) подумал, что rm даже с флагом -I слишком опасная команда. Немного подумав, получился такой быдлокод:rm () { # error check [ $# -eq 0 ] && { echo "Files are not set!"; return 1 } echo "$@" | grep -qe '-h\|--help' && { echo "Usage: rm FILE..."; return 0 } echo "$@" | grep -q "-" && echo "Warning: this function doesn't support any flags" # set trash path TRASHDIR="$HOME/.local/share/Trash" TRASHFILE="${TRASHDIR}/files" TRASHINFO="${TRASHDIR}/info" for DIRECTORY in "${TRASHDIR}" "${TRASHFILE}" "${TRASHINFO}"; do if [ -e "${DIRECTORY}" ]; then [ -d "${DIRECTORY}" ] || { echo "'${DIRECTORY}' is a file"; return 1 } else mkdir -p -m755 "${DIRECTORY}" fi done # confirm CONFIRM="" echo -n "You realy want to remove '$@'? [y/n] "; read -k1 CONFIRM; echo [[ ! $CONFIRM =~ [yY] ]] && return 1 # move for FILE in "$@"; do DESTFILE="$(basename -- "${FILE}")" SUFFIX=''; ITER=0; while [ -e "${TRASHFILE}/${DESTFILE}${SUFFIX}" ]; do SUFFIX="_${ITER}"; ITER=$(expr ${ITER} + 1) done echo "Remove '${FILE}'" if [ "$(dirname -- "$(realpath -- "${FILE}")")" == "${TRASHFILE}" ]; then /usr/bin/rm -rf -- "${FILE}" /usr/bin/rm -rf -- "${TRASHINFO}/${DESTFILE}.trashinfo" else mv -- "${FILE}" "${TRASHFILE}/${DESTFILE}${SUFFIX}" || return 1 echo "[Trash Info]\nPath=$(realpath -- "${FILE}")\nDeletionDate=$(date +%Y-%m-%dT%H:%M:%S)" > "${TRASHINFO}/${DESTFILE}${SUFFIX}.trashinfo" || return 1 fi done } Предложения/замечания/фич реквесты приветствуются. Если для других ДЕ механизм перемещения в корзину из файлового менеджера отличается - опишите мне, я дополню (в баше вроде тоже должна работать) (сверху еще прикрутить запрет на sudo rm) |
akorop |
|
Темы:
111
Сообщения:
1755
Участник с: 29 февраля 2012
|
Добавлю свои пять копеек: прыжки в командной строки по словам при помощи Ctrl-Left, Ctrl-Right, а также Home и End с понятным смыслом. Вписать в .zshrc:bindkey "^[Oc" forward-word # Ctrl-Right bindkey "^[Od" backward-word # Ctrl-Left bindkey '^[[7~' beginning-of-line # Home bindkey '^[[8~' end-of-line # End |
Kycok |
|
Темы:
32
Сообщения:
1585
Участник с: 09 января 2013
|
Я так понимаю, если переходить на zsh, пакет bash все равно нужно в системе оставить? |
arcanis |
|
Темы:
31
Сообщения:
1496
Участник с: 09 сентября 2012
|
Kycokтеоретически - можно обойтись без него. На практике это практически невозможно. Так что проще оставить |
mehanoid |
|
Темы:
28
Сообщения:
382
Участник с: 27 апреля 2010
|
arcanisУ себя для кед я сделал элементарно Другими DE не пользуюсь =)И да, решил команду по-другому назвать, чтобы не перезаписывать rm. |
Kycok |
|
Темы:
32
Сообщения:
1585
Участник с: 09 января 2013
|
Спасибо, arcanis! Раньше с zsh вообще не сталкивался (окромя установочного носителя), а сегодня благодаря вике и твоему посту настроил на своей машинке. Будет ли он для меня удобнее, чем баш? Время покажет Не могу понять, что это такое, и зачем вообще оно надо |
arcanis |
|
Темы:
31
Сообщения:
1496
Участник с: 09 сентября 2012
|
Kycokдля хранения каких то локальных скриптов, симлинков на исполняемые файлы приложений, которые устанавливаются через свой инсталлятор в хомяк (платные или с хитрой лицензией), например. Где размещать саму директорию bin - вопрос удобства и привычки, хотя я не так давно переместил в ~/.local/bin, чтобы в хомяке не мозолила глаза |
Kycok |
|
Темы:
32
Сообщения:
1585
Участник с: 09 января 2013
|
arcanis, спасай! Для примера приведу алиас: Он прописан в .zshrc, который одинаков для root и user. При этом:
|
arcanis |
|
Темы:
31
Сообщения:
1496
Участник с: 09 сентября 2012
|
добавь следующую строчку
|
akorop |
|
Темы:
111
Сообщения:
1755
Участник с: 29 февраля 2012
|
Есть у меня одна странность. Если ввести несуществующую команду, то она честно красится красным, т.е. zsh знает, что она несуществующая, но посл нажатия enter сообщение "zsh: command not found" появляется где-то через секунду (!). Проблема не критичная, но некрасиво. bash в такой ситуации ругается мгновенно. Может, я что-то лишнее установил? pacman -Qs zsh
|