Я могу заставить резервную опцию CP и mv работать с каталогами?

Так как Вы - корень, Вы всегда могли strace -f -e execve -p her_bash_pid. -f необходимо, потому что ее оболочка разветвит новый процесс перед exec, но это также означает наблюдение чего-либо, что дочерние процессы выполняют также.

2
15.10.2013, 06:54
1 ответ

У меня есть чувство, что нет, таким образом, я записал этот сценарий, который эмулирует функциональность:

#!/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
0
27.01.2020, 23:07
  • 1
    я думаю, что Вы записали архив и удаляете сценарий, не резервный сценарий, начиная с Вашего сценария, удаляет исходный каталог (путем переименования его). Ваш комментарий сценария о "файле, созданном", введет в заблуждение, если это не будет файл. В зависимости от того, как Вы называете свой сценарий (т.е. если Вы используете его с find), можно найти, что это архивирует все файлы в соответствии с каталогом, прежде чем это заархивирует сам каталог, или find будет жаловаться, что Вы только что отодвинули каталог, который это собиралось обойти - это не может быть тем, что Вы хотите. –  Ian D. Allen 17.10.2013, 04:29
  • 2
    @IDAllen, который Вы неправильно поняли, этот сценарий, должен использоваться вместо cp или mv, сделать --backup поведение, применимое к каталогам. –  phunehehe 17.10.2013, 08:03

Теги

Похожие вопросы