Ignore_load 파일

Ignore_load 파일

파일이 로드되면 해당 파일에 대한 _load 파일을 생성해야 한다는 요구 사항이 있습니다. 예:- temp_20180101.txt가 로드되면 그에 대한 temp_20180101.txt_load를 만듭니다.

이제 다음 실행에서는 _load 디렉터리에 있는 모든 파일을 무시하고 사용 가능한 최신 파일을 선택하려고 합니다.

하나의 Linux 명령으로 이 작업을 수행하는 방법을 알려주십시오.

답변1

첫 번째 예( 를 사용하여 재귀적으로 파일 찾기 find):

find . -type f -name 'temp_*.txt' -exec sh -c '[ ! -e "$0"_load ]' {} ';' -print

temp_*.txt그러면 패턴과 일치하지만 연관된 해당 파일이 없는 현재 디렉토리(또는 그 이하)의 모든 일반 파일 이름이 출력됩니다 temp_*.txt_load. 그런 다음 해당 로드는 -exec다른 로드를 대신하여 완료될 수 있습니다 -print.

두 번째 예(더 간단하고 명시적인 쉘 루프):

for name in ./temp_*.txt; do
    if [ -f "$name" ] && [ ! -e "$name"_load ]; then
        command_to_load "$name"
        touch "$name"_load
    fi
done

이는 현재 디렉터리의 파일만 보는 명시적 셸 루프입니다. 일치하는 이름이 일반 파일이고 연관된 해당 파일이 없으면 _load일부 로드 명령이 호출되고 파일이 생성됩니다.$name_load

사람들이 사용하고 싶을 수도 있습니다

command_to_load "$name" && touch "$name"_load

- 문 내에서 파일은 로드가 잘 되는 경우에만 생성 if됩니다 ._load

관련 정보