많은 수의 파일 이름을 바꾸고 확장자를 제거하는 방법

많은 수의 파일 이름을 바꾸고 확장자를 제거하는 방법

다음 파일의 이름을 바꿔야 합니다. .job-209675다음으로 시작하는 파일 이름을 제거하고 싶지만 SOA해당 디렉토리에 다른 파일이 있으므로 원래 파일 이름은 그대로 유지하고 싶습니다.

예를 들어
이전: ./SOA_990377897NW0001_1557340549734.xml.job-2074645
이후:./SOA_990377897NW0001_1557340549734.xml

답변1

변수에 filename파일 중 하나의 이름이 포함되어 있으면 ${filename%.job-*}이름의 마지막 점 뒤에 비트가 없습니다.

파일 이름을 반복하려면 각 파일의 이름을 차례로 바꾸십시오.

for filename in SOA_*.job-*; do
    echo mv -i "$filename" "${filename%.job-*}"
done

이는 echo보호를 위한 것입니다. 루프를 한 번 실행하고 출력을 확인하고 echo정확하다고 생각되면 삭제해야 합니다. 이 -i옵션을 mv사용하면 기존 파일을 덮어쓰기 전에 확인을 요청하게 됩니다.

이는 모든 관련 파일(다른 파일 제외) SOA_*.job-*이 패턴과 일치한다고 가정합니다.

관련 정보