파일 세트를 읽을 수 있는지 확인해야 합니다. 를 사용하여 파일을 확인하는 방법을 알고 있지만 [ -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은 여전히 공간에서 분할되므로 각 부분을 다른 "파일"로 시도합니다.