2017-09-17 3 views
0

확장자가 다른 여러 파일 (pdf, doc, txt ... 등)이있는 디렉토리가 있습니다.리눅스 - 확장자를 유지하면서 파일 이름 바꾸기

파일 이름을 동일하게 유지하면서 디렉토리 이름에 따라 모든 파일의 이름을 바꾸려고합니다. 아래의 코드는 모든 파일이 PDF 인 경우 제대로 작동하지만 그렇지 않으면 txt 파일 확장자도 pdf로 변경됩니다. 파일 확장자를

mv "$file" "${dir}/${dir}-${count}.pdf" 

감사를 유지하면서

어떻게 파일의 이름을 바꿀 수 있습니다.

답변

0

bash를 통해이 작업을 수행 할 수 있습니다.

자세한 내용을 제공해주십시오. 이 $ dir과 $ count 변수 값을 결정하는 방법.

당신은 이미 당신이 아래

이전 이름과 같은 파일 이름을 변경하려면 무엇으로 알고있는 경우 | 새 이름 | 경로

test.1 | newtest.1 | 경로

arty.2 | xyz.2 | 경로

특정 이름으로 바꾸려면 위와 같은 목록을 준비한 다음 while 또는 for 루프로 파일을 탐색 할 수 있습니다. 아래에 다음 코드 조각이 작동합니다 아래 하나의 디렉토리에서 작업을 수행하려는 경우 여러 디렉토리

while IFS="|" read OLD NEW PATH 
do 
    cd $Path 

    filename=`echo $NEW|awk -F '.' '{print $1}'` 

    filetype=`echo $NEW|awk -F '.' '{print $2}'` 

    mv $OLD $filename.$filetype 

done<FILE_PATH 

에서 파일이있는 경우에 간단한 bash는 조각이다.

for i in $(ls /tmp/temp) 
do 
    filename=`echo $i|awk -F "." '{print $1}'` 
    fileType=`echo $i|awk -F "." '{print $2}'` 
    mv $i $filename.$fileType 
done 
0

어떤 종류의 루프에서이 작업을 수행한다고 가정합니다. 그렇다면, 당신은

ext="${file##*.}" # eg. ext="txt", ext="pdf"... 

먼저 파일 확장자를 잡아 그리고 당신의 mv 명령 $extpdf을 대체 할 수있다. sh, bash, dash, ksh으로 테스트되었습니다.

관련 문제