파일 목록에 확장자 추가

파일 목록에 확장자 추가

파일 목록에 확장자를 추가하는 Perl 방법을 결정하려고 합니다. 이미 특정 확장자를 가진 파일 목록의 이름을 다른 확장자로 바꿀 수 있지만 이미 확장자가 있는지 여부에 관계없이 모든 파일 이름으로 이 작업을 수행할 수 있어야 합니다.

예를 들어 다음과 같은 파일 목록이 있습니다.

file1
file2
file3
ps.dir

나는 그것들의 이름을 모두 다음과 같이 바꾸고 싶습니다 filename.extension:

file1.bad
file2.bad
file3.bad
ps.dir.bad

답변1

쉘에 renamePerl이 설치되어 있는 경우(때때로 라고 함 prename):

rename -v 's/$/.bad/' *

파일이 너무 많고 쉘 *글롭이 이를 모두 처리할 수 없는 경우 find다음과 같이 혼합하여 일치시킬 수 있습니다(또는 +필요한 경우 다음으로 교체).\;

find . -maxdepth 1 -exec rename -v 's/$/.bad/' {} +

Perl의 경우 move표준 모듈에서 사용하세요.

use File::Copy;
for (<*>) { move($_, "$_.bad"); }

답변2

파일 이름에 공백이 없다고 가정합니다.

for file in *; do mv "${file}" "${file}.bad"; done

답변3

[ ! . -sf / ] &&
mkdir ../bad  &&
pax  -rwls/$/.bad/ . ../bad

.그러면 하드 링크 미러가 생성됩니다 ../bad. 루트가 있는 각 파일 .도 그곳에서 찾을 수 있지만 ../bad이름에 .bad. 새 트리가 요구 사항을 충족하는 경우 현재 트리와 그 위의 트리를 삭제합니다 mv.../bad

관련 정보