Добавление положительного целого числа к целевому имени, если имя уже занято, а также увеличение этого целого числа до тех пор, пока не будет найдено свободное имя:
mycp () {
local source="$1"
local target="$2"
local n
# If the target pathname is a directory, add the source filename
# the end of it.
if [ -d "$target" ]; then
target+="/$(basename "$source")"
fi
# Increment n until a free name is found
# (this may leave n unset if the source filename is free).
while [ -e "$target$n" ]; do
n=$(( n + 1 ))
done
cp "$source" "$target$n"
}
Примечание. :Эта функция не принимает никаких других аргументов, кроме исходного и целевого путей. Также предполагается, что вы используете оболочку bash
.
Чтобы «установить» его, просто запустите приведенный выше код в своей оболочке или добавьте его туда, куда вы обычно добавляете псевдонимы и функции.
Тестирование:
$ ls
dir file
$ ls dir/
$ mycp file dir
$ ls dir/
file
$ mycp file dir
$ ls dir/
file file1
$ mycp file dir
$ ls dir/
file file1 file2
Если вы сомневаетесь, просто используйте командную строку. «git add» для того, что нужно подготовить, и «git commit -m» после того, как вы их все добавили.
Если у вас есть локальные изменения, вы можете «git stash», внести свои изменения, а затем «git stash pop» после их фиксации.