commit
f7fd0b2b7e
1 changed files with 53 additions and 0 deletions
-
53rm
@ -0,0 +1,53 @@ |
|||
#!/bin/bash |
|||
|
|||
# |
|||
# hier ist das komplizierte..(mehr oder weniger) |
|||
# alle Kommandozeilenparameter werden geparsed: |
|||
# - alle mit - beginnenden kommen nach args |
|||
# - alle anderen werden zunächste überprüft ob sie mit einem / beginnen. |
|||
# * ist dem so, so werden sie direkt nach cpfiles übernommen. |
|||
# * ansonsten beschreiben sie einen relativen pfad und es wird zunächst das |
|||
# aktuelle Arbeitsverzeichnis vor diesen gehängt. |
|||
# * nach cpfiles kommen sie nur, wenn es sich bei dem Pfad nicht um das |
|||
# trash-verzeichnis des users handel ($HOME/trash). |
|||
# Würde man das nicht machen, so würden die Dateien auf sich selbst |
|||
# kopiert, was eine fehlermeldung von cp zur folge hätte. |
|||
# |
|||
while true |
|||
do |
|||
test -z "$1" && break |
|||
if eval test \"\${1%${1#?}}\" == \"-\" |
|||
then |
|||
args="$args $1" |
|||
arg="${1//[Rrd]/}" |
|||
test "$arg" != "-" && cpargs="$cpargs $arg" |
|||
fi |
|||
if eval test \"\${1%${1#?}}\" != \"-\" |
|||
then |
|||
file="$1" |
|||
eval test \"\${file%${file#?}}\" != \"/\" && file="$PWD/$file" |
|||
|
|||
rmfiles="$rmfiles \"$file\"" |
|||
test -z "`echo $file | sed '/'${HOME//\//\\\\/}'\/trash/p;d'`" && |
|||
cpfiles="$cpfiles \"$file\"" |
|||
fi |
|||
shift || break |
|||
done |
|||
|
|||
# |
|||
# falls es nicht existiert oder kein directory ist trash neu machen |
|||
# |
|||
test ! -d $HOME/trash && (/usr/bin/rm -Rf $HOME/trash; mkdir $HOME/trash) |
|||
|
|||
# |
|||
# ok, das braucht ein wenig doku. |
|||
# ich kopiere Dateien nur nach trash, wenn sie: |
|||
# 1. -z: nicht mit f oder i als option gelöscht werden...also |
|||
# nicht force und nicht interactive. |
|||
# 2. -n: Überhaupt zu kopierende Dateien existieren. |
|||
# |
|||
test -z "`echo "$args" | sed '/-[a-zA-z0-9]*[fi][a-zA-Z0-9]*/p;d'`" -a \ |
|||
-n "$cpfiles" && \ |
|||
eval mv $cpargs $cpfiles $HOME/trash |
|||
|
|||
eval /usr/bin/rm -f $args $rmfiles |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue