Bash – 공백이 아닌 \n 으로 개행된 변수의 내용을 배열에 넣고 호출하기.

 

#변수 DATA에 값을 할당.
DATA=$'Line 1
Line 2
Line 3
Line 4'

#변수 DATA에 저장된 값들을 \n을 구분자로하여 배열 lines에 저장.
IFS=$'\n' read -d '' -r -a lines <<<"$DATA"

#변수 total에 배열 lines 배열 요소의 갯수를 저장.
total="${#lines[@]}"

# 모든 배열 요소 출력.
for i in "${lines[@]}"
  do
    # 배열 요소를 하나씩 출력.
    echo "${i}"
done

echo -e "\n"

#배열요소 갯수가 저장된 변수 total을 출력.
echo $total
echo -e "\n"

#배열 요소의 값을 출력, 0번부터 시작.
echo "${lines[0]}"
echo "${lines[1]}"
echo "${lines[2]}"
echo "${lines[3]}"


 

#위 코드를 실행한 결과.

Line 1
Line 2
Line 3
Line 4

4

Line 1
Line 2
Line 3
Line 4

find 파일, 디렉토리 찾기 중요 옵션 정리

옵션 설명 사용 방법 예제
-type d 디렉토리 (폴더) 만 검색
-type f 파일만 검색
-inum inode 번호로 검색
-printf “%f\n” path (경로) 를 제외한 최종 이름만 출력
-atime Access Time.
열 때 변경됨.
grep, sort, cat, head, tail 등으로 파일에 접근할 때 변경됨.
-ctime Change Time.
owner, permission 등을 변경할 때 갱신됨.
다른 파일시스템으로 옮길 때 갱신됨
수정시에도 변경됨.
-mtime Modify Time.
저장하거나 내용이 수정될 때 갱신됨.
대부분의 경우 ctime과 동일한 값을 가지지만, 속성만 변경하는 경우에는 ctime만 변경됨.
find ./ -type f -mtime +31
mtime 이 31일 보다 오래된 파일을 검색find ./ -type f -mtime -31
mtime 이 31일이 안 된 파일을 검색
-name 이름으로 검색 find ./ -type f -name ‘*computer*’
현재 디렉토리부터 이름에 소문자 computer 가 들어간 파일만 검색
-iname 대소문자를 구분하지 않은 이름으로 검색 find ./ -type f -iname ‘*computer*’
현재 디렉토리부터 이름에 대소문자를 구분하지 않고 computer 가 들어간 파일만 검색
-perm 퍼미션으로 검색 find ./ -type d -perm -0002
누구나 쓰기 가능한 디렉토리를 검색find ./ -type f -perm -4000
setuid 가 설정된 파일을 검색

find ./ -type f -perm -2000
setgid 가 설정된 파일을 검색

find ./ -type f -perm -1000
sticky bit 가 설정된 파일을 검색