파일 출력을 다른 디렉터리로 리디렉션하는 방법은 무엇입니까?

파일 출력을 다른 디렉터리로 리디렉션하는 방법은 무엇입니까?

주기적으로 파일을 디렉토리에 출력하는 프로그램이 있습니다 /a/b. 이러한 파일이 출력되는 위치를 변경할 방법이 전혀 없습니다. 하지만 이를 사용하려면 먼저 다음 위치로 이동해야 합니다 /c/d.이미 존재하는목차. 정기적으로 파일 내용을 이동하는 데 지쳤습니다. 해당 디렉터리에 작성된 모든 내용을 다른 디렉터리로 리디렉션할 수 있는 방법이 있습니까? 나는 이것을 시도했지만 ln -s링크 명령에 대한 제한된 지식으로 인해 아무것도 할 수 없습니다. 프로그램의 코드는 변경할 수 없습니다. 도와주셔서 감사합니다.

답변1

/a/b 디렉토리를 삭제할 수 없는 경우 ln -s명령을 실행해도 정보가 제공되지 않습니다.

/a/b그러나 몇 초 동안 이 디렉터리에 아무 것도 기록되지 않으면 다음을 수행할 수 있습니다.

cd /a
rm -r b   # make sure you have a backup of the contents of this directory 
ln -s /c/d b

이제 쓰기를 원하는 모든 애플리케이션은 쓰기 권한이 있는 경우 /a/b이러한 파일에 쓰도록 지시됩니다 ./c/d

답변2

여기:

while :; do cp /a/b/* /c/d/; sleep 60; done

60초마다 /a/b/의 전체 내용을 /c/d/로 복사합니다.

한 가지 단점이 있습니다. 파일이 큰 경우(몇 GB 이상?) 복사하는 데 시간이 걸릴 수 있습니다. 이것이 문제인 경우 댓글을 남겨주시면 대용량 파일에 최적화된 것을 구현하겠습니다(다음을 사용).꼬리 -f) 이렇게 하면 콘텐츠가 실시간으로 리디렉션됩니다.

관련 정보