스크립트를 수동으로 변경하지 않고 타임스탬프를 기반으로 파일을 새 폴더로 동적으로 이동할 수 있는 방법은 무엇입니까?

스크립트를 수동으로 변경하지 않고 타임스탬프를 기반으로 파일을 새 폴더로 동적으로 이동할 수 있는 방법은 무엇입니까?
# Create a folder
mkdir archived_PA_2022-01_2022-06

# Move files to new folder
find ./ -newermt "2021-12-31" ! -newermt '2022-06-28' -exec mv /var/log/pentaho/PA –t archived_PA_2022-01_2022-06 {} +

# Archive folder 
zip -r archived_PA_2022-01_2022-06.zip /var/log/pentaho/archived_PA_2022-01_2022-06

여기에 지난 6개월 간의 파일을 새 폴더로 이동하는 Unix 스크립트가 있습니다.
내가 원하는 것은 파일을 동적으로 이동하는 것입니다.

예를 들어, 2023년 7월 6일 오늘, 2023년 1월 5일부터 2023년 7월 5일 폴더까지의 타임스탬프를 기준으로 "archived_PA_2023-01-05_2023-07-05"라는 새 파일로 파일을 이동하고 싶습니다. 비유에 따라 2023년 1월 7일에 2023년 1월 6일부터 2023년 7월 6일까지의 타임스탬프를 기준으로 "archived_PA_2023-01-06_2023-07-06"이라는 새 폴더로 파일을 이동하고 싶습니다.

나는 이 프로세스가 동적이기를 원합니다. 즉, 타임스탬프가 자동으로 결정되고 스크립트가 실행될 때마다 스크립트를 수동으로 변경할 필요 없이 그에 따라 새 폴더가 생성됩니다.

이것을 달성할 수 있는 방법이 있나요?

ベストアンサー1

나는 그것을 알아낼 수 있습니다.

그냥 사용:

# Create a folder dynamically 
mkdir archived_PA_"$(date -d "6 months ago" +%Y-%m-%d)"_"$(date -d "1 day ago" +%Y-%m-%d)"

# Move files to new folder dynamically
find ./ -newermt "6 months ago" ! -newermt "1 day ago" -exec mv -t archived_PA_"$(date -d "6 months ago" +%Y-%m-%d)"_"$(date -d "1 day ago" +%Y-%m-%d)" {} +

おすすめ記事