Suche nach Dateiexistenz

Suche nach Dateiexistenz

Ich habe eine TXT-Datei mit einer Reihe von Dateinamen und wollte die Existenz dieser Dateien in einem Verzeichnis überprüfen.

cat file list.txt
File1
File2
File3

Mein Skript soll prüfen, ob diese Dateien im Verzeichnis vorhanden sind oder nicht.

Antwort1

In zsh:

dir=/some/dir
list_file=/path/to/file.list

list=( ${(f)"$(<$list_file)"} )
existing=( $dir/*(ND:t) )
files_in_list_that_exist=( ${list:*existing} )
files_in_list_that_dont_exist=( ${list:|existing} )

Die Existenz wird in diesem Fall durch das Lesen des Inhalts des $dirSektors bestimmt, zu dem SielesenErlaubnis (nicht unbedingtsuchenErlaubnis).

Mit jeder POSIX-ähnlichen Shell können Sie auch Folgendes tun:

while IFS= read -r file; do
  if [ -e "$dir/$file" ] || [ -L "$dir/$file" ]; then
    found=yes
  else
    found=no
  fi
  printf '%s\n' "$file: $found"
done < "$list_file"

lstat()Hier wird die Existenz der Dateien über den Systemaufruf (oder eine Variante davon) bestimmt , für den SiesuchenErlaubnis zur Erteilung der Genehmigung für die $dirBranche (nicht unbedingtlesenErlaubnis).

verwandte Informationen