Так как Вы - корень, Вы всегда могли strace -f -e execve -p her_bash_pid
. -f
необходимо, потому что ее оболочка разветвит новый процесс перед exec
, но это также означает наблюдение чего-либо, что дочерние процессы выполняют также.
У меня есть чувство, что нет, таким образом, я записал этот сценарий, который эмулирует функциональность:
#!/bin/bash
if [ -e "$target" ]
then
backup="$target.bak"
if [[ -e "$backup" ]]
then
count=0
while [[ -e "$backup.$count" ]]; do let "count += 1"; done
backup="$backup.$count"
fi
mv "$target" "$backup"
echo "backup file $backup created."
fi
# Normal cp or mv follows
find
), можно найти, что это архивирует все файлы в соответствии с каталогом, прежде чем это заархивирует сам каталог, илиfind
будет жаловаться, что Вы только что отодвинули каталог, который это собиралось обойти - это не может быть тем, что Вы хотите. – Ian D. Allen 17.10.2013, 04:29cp
илиmv
, сделать--backup
поведение, применимое к каталогам. – phunehehe 17.10.2013, 08:03