Не удается удалить каталог, операция не поддерживается в NTFS

Похоже, вы пытаетесь выполнить передачу по ссылке функцию типа.

Они не очень подходят для сценариев bash . Мы можем подделать его с помощью команды eval , но это имеет много рискованного поведения (потенциальная оценка команд, встроенных в строки), и поэтому не рекомендуется.

В этом примере код будет выглядеть примерно так:

function check_cases {
    case $2 in
        r) eval $1=\"\$$1 Read\" ;;
        w) eval $1=\"\$$1 Write\" ;;
        x) eval $1=\"\$$1 Execution\" ;;
    esac
}

check_cases var r
check_cases var w
check_cases var x

echo $var

Вместо этого обычно лучше использовать семантику передачи по значению ; просто верните желаемое значение и попросите вызывающего добавить его в переменную.

например.

function check_cases {
    case $1 in
        r) echo " Read" ;;
        w) echo " Write" ;;
        x) echo " Execution" ;;
    esac
}

var="$var$(check_cases r)"
var="$var$(check_cases w)"
var="$var$(check_cases x)"

echo $var
3
08.03.2017, 02:27
1 ответ

Сначала я бы попробовал следующее:

  chattr -i [directory]  
  chattr -a [directory]  

chattr изменяет атрибуты файла (и каталога) в файловой системе Linux

  chattr +[option] adds an attribute  
  chattr -[option] removes and attribute  

Флаг только добавления 'a' предотвращает удаление каталога и любых файлов или каталогов, созданных в нем.

Элемент с атрибутом 'i' не может быть изменен: его нельзя удалить или переименовать.

-1
27.01.2020, 21:46

Теги

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