파일 존재 검색

파일 존재 검색

파일 이름 집합이 포함된 .txt 파일이 있고 디렉터리에 해당 파일이 있는지 확인하고 싶었습니다.

cat file list.txt
File1
File2
File3

내 스크립트는 이러한 파일이 디렉터리에 있는지 여부를 확인해야 합니다.

답변1

안에 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} )

이 경우의 존재 여부는 해당 내용을 읽어서 결정됩니다.$dir이 경우 존재 여부는 필요한 ectory읽다허가(반드시 그런 것은 아님찾다허가).

POSIX와 유사한 셸을 사용하면 다음을 수행할 수도 있습니다.

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"

여기서 find 존재 여부는 다음을 사용하여 결정됩니다.lstat()여기서는 파일 자체에 대한 시스템 호출(또는 그 변형)을찾다에 대한 허가$dir (반드시 그런 것은 아님)읽다허가).

관련 정보