매일 받는 파일이 2개 있습니다.TRN_HIST_TBL_16_AUG_2020그리고TRN_HIST_TBL_NON_NPI_16_AUG_2020이름을 다음으로 바꾸고 싶습니다.TRN_HIST_TBL.txt그리고TRN_HIST_TBL_NON_NPI.txt
아래와 같이 이름 바꾸기 명령을 작성했지만 파일은 하나만 생성됩니다.TRN_HIST_TBL.txt.
mv TRN_HIST_TBL* TRN_HIST_TBL.txt
mv TRN_HIST_TBL_NON_NPI* TRN_HIST_TBL_NON_NPI.txt
답변1
첫 번째 파일에 사용한 glob은 두 파일 모두와 일치합니다. 이로 인해 두 번째 파일이 첫 번째 파일을 덮어쓰게 됩니다. 파일 이름이 지정되는 방식으로 인해 globbing으로 이를 피할 수 있는 방법은 없습니다. 당신이 해야 할 일은 전체 파일 이름을 사용하는 것입니다:
mv TRN_HIST_TBL_16_AUG_2020 TRN_HIST_TBL.txt
mv TRN_HIST_TBL_NON_NPI_16_AUG_2020 TRN_HIST_TBL_NON_NPI.txt
답변2
첫 번째 이름 바꾸기(mv)는 두 파일 모두와 일치하므로 두 번째 이름 바꾸기는 즉시 첫 번째 파일을 덮어씁니다.
순서를 바꾸는 것은 도움이 되지 않습니다. 이렇게 하면 이름이 더 긴 파일의 이름이 올바르게 변경되지만 해당 파일과 다른 파일의 이름이 다시 변경됩니다.
추가 참고 사항 및 수정 사항:
귀하의 입력은 TRN_HIST_TBL_16_AUG_2020
및 이며 TRN_HIST_TBL_NON_NPI_16_AUG_2020
매일 다르며 날짜 부분이 중요하지 않기를 원합니다.
따라서 를 작성하면 mv TRN_HIST_TBL* TRN_HIST_TBL.txt
와일드카드는 두 파일 모두와 일치하고 명령은 다음과 같이 확장됩니다.
mv TRN_HIST_TBL_16_AUG_2020 TRN_HIST_TBL_NON_NPI_16_AUG_2020 TRN_HIST_TBL.txt
이것은 단지 두 파일의 이름을 지정합니다 TRN_HIST_TBL.txt
.
TRN_HIST_TBL_NON_NPI*
현재 일치하는 항목이 없기 때문에 두 번째 명령은 실패합니다 .
이 두 명령을 다른 순서로 실행하면 TRN_HIST_TBL_NON_NPI*
파일 하나만 일치하고 다음을 얻습니다.
mv TRN_HIST_TBL_NON_NPI_16_AUG_2020 TRN_HIST_TBL_NON_NPI.txt
다른 명령을 제외하고는 잘 작동합니다.아직두 이름을 일치시키고 두 파일의 이름을 다음으로 바꿉니다.TRN_HIST_TBL.txt
파일 중 하나를 숨기고 다른 파일의 이름을 바꿔야 하며 보다 고유한 이름이어야 합니다.
#.. Will only rename one file.
mv TRN_HIST_TBL_NON_NPI* Hide_TRN_HIST_TBL_NON_NPI.txt
#.. Wildcard will not match that file.
mv TRN_HIST_TBL* TRN_HIST_TBL.txt
#.. Set the final name.
mv Hide_TRN_HIST_TBL_NON_NPI.txt TRN_HIST_TBL_NON_NPI.txt