опция комнаты перестать работать на несуществующих файлах

nginx (объявленный Механизмом-X) является очень популярной легкой альтернативой для обслуживания статичного (и другой) содержание. Это работает из поля над большинством дистрибутивов.

4
08.10.2012, 16:52
3 ответа

Я использую этот вид вещи:

mkdir DELETE && mv "some" "paths" DELETE && rm -rf DELETE

Для единственного пути:

mv /some/path DELETE && rm -rf DELETE

Еще лучше введите rm command на отдельной командной строке: mv /some/path DELETE Войти rm -rf DELETE Войти. Тот путь, единственное rm команда, которая превращает его в Вашу историю оболочки, находится на названном файле DELETE, таким образом, при удалении старой версии файла Вы не рискуете удалять новую версию путем случайного нажатия Up, который затем Вводит неправильное количество раз.

Если Вы хотите автоматизировать немного:

mv_to_DELETE () {
  mkdir DELETE &&
  mv -- "$@" DELETE/
}
mv_to_DELETE "some" "paths"
rm -rf DELETE
1
27.01.2020, 21:00
  • 1
    Хороший! Теперь я просто должен использовать mktemp и прерывание, чтобы положить обратно файлы и удалить временный каталог, если mv сбои. –  l0b0 10.10.2012, 10:39

Что-то как

paths=("some" "paths")
for path in "${paths[@]}"
do
    [ -e "$path" ] || exit 1
done

перед каждым rm команда намного более сложна для новичка и зависит от массивов Bash.

1
27.01.2020, 21:00
for path in "some" "paths"
do
    [ -e "$path" ] || exit 1
done

является более портативным, но означает копировать список путей в цикле и rm команда. И хранение всех путей в той же строковой переменной означает, что сценарий больше не поддерживает ни одного из IFS символы в именах файлов.

0
27.01.2020, 21:00

Теги

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