파일 세트를 읽을 수 있는지 확인하는 방법은 무엇입니까?

파일 세트를 읽을 수 있는지 확인하는 방법은 무엇입니까?

파일 세트를 읽을 수 있는지 확인해야 합니다. 를 사용하여 파일을 확인하는 방법을 알고 있지만 [ -r file.txt ]여러 파일(디렉터리 포함)을 확인하는 루프를 어떻게 작성합니까?

예를 들어, file1.txt file2.txt directory1 directory2 file3.txt.

답변1

다음 함수는 모든 인수가 읽을 수 있는 파일인지 확인합니다.

files_are_readable () {
  for x do
    [ -r "$x" ] || return 1
  done
}

답변2

Bash에서는 할 수 있습니다

for file in file1.txt file2.txt directory1; do
    if [[ -r $file ]]; then
        ...
    fi
done

파일 목록의 일부는 공백으로 구분된 각 "단어"를 읽고 $file에 넣을 수 있는 모든 것이 될 수 있습니다.

for file in $(find .); do
    ...
done

현재 디렉토리 아래의 모든 파일과 디렉토리에 대해 작업을 수행하려는 경우. 그러나 find의 예에 주의하십시오. 파일이나 디렉토리 이름에 공백이 있으면 $file은 여전히 ​​공간에서 분할되므로 각 부분을 다른 "파일"로 시도합니다.

관련 정보