셸 리 셋 (1): 파일 리 셋

1367 단어
Linux 에 서 는 표준 입력 stdin (키보드), 표준 출력 stdout (화면), 표준 오류 stderr (화면 에 출력 되 는 오류 정보) 등 3 개의 기본 장치 파일 이 열 려 있 습 니 다.이 세 개의 파일 과 다른 열 린 파일 은 모두 방향 을 바 꿀 수 있다.쉽게 말 하면 파일, 명령, 프로그램, 스 크 립 트, 심지어 스 크 립 트 의 코드 블록 에서 출력 을 가 져 와 다른 파일, 명령, 프로그램 또는 스 크 립 트 에 입력 으로 보 내 는 것 입 니 다.
열 린 파일 마다 설명 자 를 지정 합 니 다.예 를 들 어 표준 입력, 표준 출력 과 표준 오류 의 파일 설명 자 는 각각 0, 1, 2 이다.열 린 다른 파일 에 대해 서 는 파일 설명자 3 ~ 9 가 남아 있 습 니 다.
파일 재 설정
파일 의 방향 을 바 꾸 는 것 은 파일 설명 자 를 바 꾸 어 파일 을 가리 키 는 것 입 니 다.
연산 자 ">"출력 방향 을 바 꾸 기 시작 합 니 다.기본 값 으로 한 명령 에 만 적 용 됩 니 다.Bash 가 명령 을 실행 할 때, 표준 출력 (stdout) 은 이전에 가리 키 던 곳 이 아니 라 파일 을 가리 키 는 것 을 알려 줍 니 다.
이 재 설정 은 하나의 명령 에 만 유효 합 니 다.그 다음 에 실 행 된 다른 명령 은 스 크 립 트 의 표준 출력 위치 로 출력 을 계속 보 냅 니 다.
간단 한 예시:
#! /bin/bash

if [ $# -lt 1 ]; then
    echo "Usage: $0 DIRECTORY..."
    exit
fi

#                  
for dir in $@
do
    find $dir -name "*.tmp" -exec rm -f {} \;
done 2> errors.log

파일 이전 내용 유지
이중 방향 조정 조작 부호 ">"를 사용 합 니 다.">"는 파일 을 비우 지 않 습 니 다. 파일 끝 에 새로운 내용 만 추가 합 니 다.
따라서 위의 예 를 수정 합 니 다.
#! /bin/bash

if [ $# -lt 1 ]; then
    echo "Usage: $0 DIRECTORY..."
    exit
fi

#                  
for dir in $@
do
    find $dir -name "*.tmp" -exec rm -f {} \;
done 2>> errors.log

본 고 는 에서 참고 한 것 이다.

좋은 웹페이지 즐겨찾기