cp файл в каталог с файлом с таким же именем

Страница / server-status является функцией Apache, а не Tomcat. Когда вы настраиваете свои правила ProxyPass на верхнем уровне вашего URL, то есть / , весь трафик, включая / server-status , перенаправляется на ваш Tomcat. server, который не обслуживает страницу по адресу / server-status , поэтому Apache сообщает об ошибке 404.

Вы можете указать Apache НЕ прокси-трафику, который привязан к / server-status , добавив свои правила следующим образом:

ProxyPass /server-status !
ProxyPass /Test ajp://192.168.0.xxx:8011/Test
ProxyPassReverse /Test ajp://192.168.0.xxx:8011/Test/

Подробнее об этой функции можно прочитать в официальном Документы Apache.

Файл! Директива полезна в ситуациях, когда вы не хотите выполнять обратный прокси-сервер подкаталога

Ссылки

1
28.02.2019, 18:31
2 ответа

Добавление положительного целого числа к целевому имени, если имя уже занято, а также увеличение этого целого числа до тех пор, пока не будет найдено свободное имя:

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
1
27.01.2020, 23:41

Вы можете свернуть свою собственную функцию. Это будет продолжать добавлять символы подчеркивания до тех пор, пока не будет дубликатов:

mycp() {
    if [[ -f "$2" ]]; then
        mycp "$1" "${2}_"
    else
        cp "$1" "$2"
    fi
}

Несовместимо с передачей аргументов (e. г.cp -p). Лучше использовать cp -n, который не перезапишет существующий файл.

1
27.01.2020, 23:41

Теги

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