본문 바로가기
빌드노트 검색

빌드노트

Linux·운영

Linux·운영 카테고리의 글입니다.

글 검색

글 목록

총 48개의 글

  1. Bash에서 쓰기 가능한 파일에 >가 거절된다

    Bash의 noclobber가 켜지면 쓰기 가능한 기존 일반 파일도 >로 덮어쓸 수 없다. 실제 오류와 현재 셸 설정을 확인하고, 임시 파일 실험으로 새 파일·추가 쓰기·명시적 우회의 차이를 비교해 출력 방식을 고른다.

  2. flock 잠금에 실패했는데 출력 파일이 0바이트가 됐다

    flock의 비차단 잠금에 실패해도 바깥 셸의 >는 이미 출력 파일을 비울 수 있다. 같은 잠금을 점유한 상태에서 종료 코드와 파일 바이트를 비교하고, 데이터 파일을 여는 리다이렉션을 잠금 성공 뒤로 옮긴다.

  3. Bash 래퍼에서 인자 세 개가 하나로 합쳐진다

    Bash 래퍼에서 "$*"는 공백 있는 값과 빈 문자열까지 한 인자로 합친다. 실제 자식의 인자 수와 값을 비교해 "$@"가 경계를 보존함을 확인하고, 개수가 같아도 값이 달라지는 인용 누락과 빈 인자·무인자의 차이를 설명한다.

  4. Bash while read 안에서는 늘던 변수가 루프 밖에서 0이다

    파이프 오른쪽 while read가 바꾼 변수는 별도 셸에 남을 수 있다. 실제 BASHPID와 줄 수를 비교해 파일 리다이렉션·프로세스 치환을 고르고, lastpipe와 job control에 따른 예외를 확인한다.

  5. 명령은 실패했는데 tee를 붙이면 성공으로 끝난다

    Bash 배치에 tee를 붙였을 때 생산자 7·tee 0인데 전체 상태가 0이 되는 차이를 확인한다. 짧은 pipefail 오류 처리부, 즉시 저장하는 PIPESTATUS와 소비자 조기 종료의 SIGPIPE 한계를 설명한다.

  6. Bash read 뒤에 경로의 역슬래시와 양끝 공백이 사라진다면

    read -r는 역슬래시를 보존하지만 양끝 공백까지 지키려면 IFS=도 필요하다. 실제 바이트와 루프 실행 횟수를 비교하고, 값이 할당돼도 EOF에서 실패하는 마지막 개행 없는 입력의 처리 조건을 확인한다.

  7. Bash ${VAR-default}가 빈 문자열을 그대로 넘기는 이유

    Bash의 ${VAR-default}는 빈 문자열을 그대로 쓴다. 미설정·빈 값의 실제 비교로 :-와 :=를 고르고, 인자에만 기본값을 쓸지 변수에도 저장할지 구분한다. set -u와 공백 값의 한계도 짚는다.

  8. -n 파일에 따옴표를 붙여도 cat은 옵션으로 읽는다

    따옴표로 감싼 -n도 GNU cat에는 옵션이다. 실제 파일과 표준 입력의 출력을 비교해 --로 옵션을 끝내는 경우와, 단독 -를 ./- 경로로 지정해야 하는 경우를 구분한다.

  9. find -mtime +1은 24시간이 아니라 48시간부터 고른다

    GNU find의 -mtime +1은 수정 후 48시간 이상을 고른다. 23·25·47·49시간 전 파일의 실제 선택 결과로 -mtime 1·+1·+0과 -mmin +1440을 비교하고, 경과 시간과 달력상 어제를 구분해 조건을 고른다.

  10. tar에 -C를 줬는데 report.txt를 다른 곳에서 찾는 이유

    GNU tar의 -C는 뒤에 오는 파일 인자에 적용된다. 파일 앞뒤의 옵션 순서와 연속 상대경로 b·../b를 비교하고, 종료 코드·멤버 이름·실제 내용으로 읽은 원본을 확인한다. 같은 이름으로 저장되는 두 파일은 공통 부모의 하위 경로로 구별할 수 있다.

  11. Bash에서 VAR=new 명령 "$VAR"가 이전 값을 인자로 넘기는 이유

    Bash에서 명령 앞 대입과 같은 줄의 변수 인자가 서로 다른 값을 쓰는 이유를 확인한다. export 전후의 자식 인자·환경·부모 값을 비교하고, 별도 대입 후 호출하거나 자식에서 환경을 읽는 방법을 고른다.

  12. Bash set -e 스크립트가 첫 ((counter++))에서 끝나는 이유

    Bash에서 0으로 시작한 ((counter++))는 값을 늘리고도 종료 상태 1을 반환해 set -e 스크립트를 끝낼 수 있다. 짧은 재현으로 후속 출력과 상태를 확인하고, counter=$((counter + 1))로 고친다. 전위 증가도 -1에서는 멈추는 이유를 함께 설명한다.