Sådan skriver du et .sh script til at ændre ejerskab og tilladelser, mens visse filer ekskluderes

Hvordan kan man skrive et .sh script til at ændre ejerskab og tilladelser for en liste af mapper og filer, og samtidig ekskludere visse filer?

For at skrive et .sh script til at ændre ejerskab og tilladelser for en liste af mapper og filer, og samtidig ekskludere visse filer, skal du definere variabler, oprette en ekskluderingsfunktion og iterere gennem filerne med de ønskede ændringer.

Sådan skriver du et .sh script til at ændre ejerskab og tilladelser for en liste af mapper og filer, og samtidig ekskludere visse filer

For at skrive et .sh script, der ændrer ejerskab og tilladelser for en liste af mapper og filer, mens visse filer ekskluderes, kan du følge disse trin:

  1. Definer variabler: Start med at definere variabler for ejerskab, tilladelser og de filer/mapper, der skal ekskluderes.

    OWNER="ny_ejer"
    PERMISSIONS="755"
    EXCLUDE=("fil1.txt" "fil2.log")
  2. Opret en funktion til at kontrollere ekskludering: Lav en funktion, der tjekker, om en fil eller mappe er i ekskluderingslisten.

    is_excluded() {
      for exclude in "${EXCLUDE[@]}"; do
        if [[ "$1" == "$exclude" ]]; then
          return 0
        fi
      done
      return 1
    }
  3. Iterer gennem filer og mapper: Brug en løkke til at gå gennem alle filer og mapper i den ønskede liste.

    for item in *; do
      if ! is_excluded "$item"; then
        chown $OWNER "$item"
        chmod $PERMISSIONS "$item"
      fi
    done

Her er et komplet eksempel på et .sh script:

#!/bin/bash

# Definer variabler
OWNER="ny_ejer"
PERMISSIONS="755"
EXCLUDE=("fil1.txt" "fil2.log")

# Funktion til at kontrollere ekskludering
is_excluded() {
  for exclude in "${EXCLUDE[@]}"; do
    if [[ "$1" == "$exclude" ]]; then
      return 0
    fi
  done
  return 1
}

# Iterer gennem filer og mapper
for item in *; do
  if ! is_excluded "$item"; then
    chown $OWNER "$item"
    chmod $PERMISSIONS "$item"
  fi
done

Dette script vil ændre ejerskab og tilladelser for alle filer og mapper i den aktuelle mappe, undtagen dem, der er angivet i ekskluderingslisten.