파일 이동 및 색인으로 이름 바꾸기를 위한 쉘 스크립트

파일 이동 및 색인으로 이름 바꾸기를 위한 쉘 스크립트

두 개의 디렉토리를 고려 A하고 B.

AA.txt3초마다 내용이 변경되는 텍스트 파일이 포함되어 있습니다 .

A.txt쉘 스크립트는 디렉토리로 이동 B하고 이름을 A_1.txt.

3초 후에 스크립트가 디렉토리 A.txt에 복사되어야 합니다 .A_2.txtB

구분 기호를 누를 때까지 스크립트가 종료되어서는 안 됩니다.

답변1

bash또는 ksh93inotifywait:을 사용하십시오 .

i=0
while true; do
    inotifywait -e close_write A/A.txt
    cp A/A.txt "B/A_$(( ++i )).txt"
done

Ctrl+C누르면 스크립트가 종료됩니다.

참고: Linux를 사용하지 않기 때문에 inotifywait실제로 내 컴퓨터에서 이벤트를 캡처 할 수는 없지만 close_writeLinux에서는 이 작업이 올바르게 수행되기를 바랍니다.

inotifywait쓰기 위해 파일을 연 외부 프로세스가 쓰기를 마치고 파일을 닫으면 A/A.txt반환하는 호출입니다 . 이렇게 하면 스크립트가 계속해서 디렉터리에 파일을 복사할 수 있습니다 B.

이는 가끔씩 파일에 쓰는 프로세스와 스크립트를 동기화하는 것보다 더 편리합니다.

관련 정보