이 명령을 사용하여 Linux에서 파일을 이동하면 mv
파일이 이동되지만 생성 시간은 현재 시간으로 변경되지 않습니다. 이렇게 하려면 명령만 사용해야 합니다 touch
. 그렇다면 이 두 가지 작업을 자동으로 수행할 수 있는 명령이 있습니까?
스트리밍 디렉터리에서 파일의 원자적 이동이 필요한 로컬 모드(HDFS 대신 로컬 파일 시스템 사용)에서 Spark의 textFileStreaming을 사용하고 있기 때문에 이에 관심이 있습니다. 시간이 이동된 파일의 원래 시간과 동일하게 유지되면 스트리밍 프로그램은 이를 인지하지도 못합니다. 스크립트를 통해 먼저 파일을 이동한 다음 터치하여 시간을 변경하면 확실히 알 수 있습니다. 그러나 터치를 사용하여 파일 시간을 수정하기 전에 스트리밍 프로그램에서 파일을 확인하여 무시하는 경우가 여전히 발생할 수 있습니다.
답변1
mv
, 동일한 파일 시스템에서 작업하는 경우 파일 자체는 변경되지 않고 위치만 변경됩니다. 이 파일을 변경하려면필요예를 들어 다른 유틸리티를 사용 touch
하거나 단순히 cp
파일(이렇게 하면 새로운 수정 및 액세스 시간이 포함된 새 파일이 생성됨)과 rm
이전 파일을 사용합니다. 특히 큰 파일이라면 비효율적일 것입니다. 이것이 touch
애초에 이와 같은 도구가 존재하는 이유입니다.
또는 문제가 원자성인 경우 파일을 임시 위치로 이동한 touch
다음 최종 위치로 이동할 수 있습니다.