파이프 찾기 및 이동 명령 출력을 파일로

파이프 찾기 및 이동 명령 출력을 파일로

다음 명령을 실행하고 있지만 출력이 파일에 기록되지 않습니다 move.log. 명령에 뭔가 빠졌나요?

find /db_backups/30_plus_days -type f -mtime +90 -exec mv {} /db_backups/90_plus_days/ >> /db_backups/move.log 2>&1 \;

답변1

명령 find줄:

find /db_backups/30_plus_days -type f -mtime +90 -exec mv {} /db_backups/90_plus_days/ >> /db_backups/move.log 2>&1 \;

동일합니까?

find /db_backups/30_plus_days -type f -mtime +90 -exec mv {} /db_backups/90_plus_days/ \; >>/db_backups/move.log 2>&1 

이 방법으로 명령을 사용 하면 find출력이 전혀 생성되지 않으므로 새 데이터가 파일에 기록되지 않습니다 move.log.

이동한 파일의 이름을 저장하려면 -print앞에 다음을 추가하세요 -exec.

find /db_backups/30_plus_days -type f -mtime +90 -print -exec mv {} /db_backups/90_plus_days/ \; >>/db_backups/move.log 2>&1

또는 더 나은 줄바꿈을 사용하세요(단지 가독성을 위해):

find /db_backups/30_plus_days \
    -type f -mtime +90 -print \
    -exec mv {} /db_backups/90_plus_days/ 2>&1 \; \
    >>/db_backups/move.log

관련 정보