|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Kirill Frolov 2:5030/827.2 01 Jun 2003 07:37:42 To : Alexandr S. Agranovsky Subject : Re: rm -rf * -------------------------------------------------------------------------------- AD>>> # rm -rf / KF>> Применил патч имени бармина, случайно :-( ASA> Кстати, поделитесь впечатлениями от cat /dev/zero >/dev/kmem ASA> ;) Hе хочу, и не рекомендую пробовать -- на диске что-нибудь попортить может! Я же не от рута rm -rf * делал. И CTRL-C ещё успел вовремя нажать. А патч бармина, запущенный от рута (я им слакварь сносил для установки дебиана), не до конца всё удаляет, что-то он удалить не может, не помню уже почему. Кстати, попытка номер два (для alias rm="$HOME/bin/trash"): #!/bin/sh # version 0.2 (01-Jun-2003) # send bug reports to: Kirill.Frolov@p2.f827.n5030.z2.fidonet.org TRASHDIR=${TRASHDIR:="$HOME/.trash"} TRASHMAXSIZE=${TRASHMAXSIZE:=0} opt_i=0; opt_r=0; opt_f=0; opt_v=0 opts() { unset arg args=: for next in "$@"; do case $arg in ?*) eval $arg=\'$next\'; unset arg; args="${args}-"; continue;; esac case $next in --) break; ;; -h|--help|-help|--h|--he|--hel|-he|-hel) echo "Usage: trash [OPTIONS]... FILE..." echo "Move file(s) to trash can." echo echo "-f, --force ignore nonexistent files, never prompt" echo "-i, --interactive prompt before any removal" echo "-r, -R, --recursive remove the content of directories recursively" echo "-v, --verbose explain what is being done" echo "-t, --trash <directory> specify trash can directory" echo "-h, --help display this help and exit" echo "--version output version information and exit" echo echo "See man page trash(1) for more information." exit 0 ;; --version) echo "trash version 0.0" exit 0 ;; --interactive) opt_i=1; opt_f=0;; -r|-R|--recursive) opt_r=1;; --force) opt_f=1; opt_i=0;; --verbose) opt_v=1;; --trash) arg=TRASHDIR ;; -*) while { next=${next#?}; [ -n "$next" ]; }; do case $next in i*) opt_i=1; opt_f=0;; r*|R*) opt_r=1;; f*) opt_f=1; opt_i=0;; v*) opt_v=1;; t*) case $next in t) arg=TRASHDIR;; *) TRASHDIR=${next#?} ;; esac next="-t" break ;; *) while :; do case $next in ??*) next=${next%?};; *) break;; esac; done echo "trash: invalid option -- \`$next'" echo "Try \`trash --help' for more information." exit 1 ;; esac done ;; *) args="${args}x" continue ;; esac args="${args}-" done case $arg in ?*) echo "trash: option requires an argument: $next" exit 1 ;; esac } opts "$@" unset rmopts mvopts case $opt_f in 1) rmopts="$rmopts -f";; esac case $opt_v in 1) rmopts="$rmopts -v"; mvopts="$mvopts -v";; esac set -e optend=no for next in "$@"; do args=${args#?} case $args in -*) continue;; esac [ -e "$next" ] || { case $opt_f in 0) echo "trash: cannot remove \`$next': No such file or directory" >&2 ;; esac continue } [ $opt_r = 0 -a -d "$next" ] && { case $opt_f in 0) echo "trash: \`$next' is a directory" >&2 ;; esac continue } case $opt_i in 1) if [ -d "$next" ]; then echo "move directory \`$next' to trash can?" else echo "move file \`$next' to trash can?" fi read a case $a in y|Y);; *) continue;; esac ;; esac if [ "$TRASHMAXSIZE" -eq 0 -o $(du -s -- "$next" | cut -f 1) -lt "$TRASHMAXSIZE" ]; then eval mv $mvopts -- \'$next\' \'$TRASHDIR\' else echo "trash: \`$next' cannot be moved to trash can" echo "trash: REMOVE file or directory \`$next'?" read a case $a in y|Y);; *) continue;; esac eval rm $rmopts -- \'$next\' || true fi done -- [ZX] --- ifmail v.2.14-tx8.10 * Origin: A quick brown fox jumps over the lazy dog. (2:5030/827.2) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/3833a9f31967.html, оценка из 5, голосов 10
|