[linux] 파일 및 디렉토리 이름 바꾸기 (접두사 추가)

모든 폴더와 디렉토리에 접두사를 추가하고 싶습니다.

예:

나는 가지고있다

Hi.jpg
1.txt
folder/
this.file_is.here.png
another_folder.ok/

접두사 “PRE_”를 추가하고 싶습니다

PRE_Hi.jpg
PRE_1.txt
PRE_folder/
PRE_this.file_is.here.png
PRE_another_folder.ok/

문안 인사,



답변

Peter van der Heijden 덕분에 공백이있는 파일 이름을 사용할 수 있습니다.

for f in * ; do mv -- "$f" "PRE_$f" ; done

( “-“는 대시로 시작하는 파일로 성공하려면 이름이 mv 명령의 스위치로 해석됩니다)


답변

다음과 같이 이름 바꾸기 스크립트를 사용하십시오 .

$ rename 's/^/PRE_/' *

파일 이름에 메타 문자 나 공백에는 문제가 없습니다.


답변

파일 (디렉토리)에 접두사 또는 접미사추가 하려면 xargs를 사용하여 간단하고 강력한 방법을 사용할 수 있습니다 .

ls | xargs -I {} mv {} PRE_{}

ls | xargs -I {} mv {} {}_SUF

xargs의 매개 변수 대체 옵션 인 -I를 사용하고 있습니다. 맨 페이지에서 더 자세한 정보를 얻을 수 있습니다.


답변

간단한 find명령을 실행하면됩니다 :

find * -maxdepth 0 -exec mv {} PRE_{} \;

위 명령은 현재 디렉토리의 모든 파일과 폴더 앞에 접두사를 붙입니다 PRE_.


답변

util-linux를 사용하여 현재 디렉토리의 모든 파일과 폴더에 접두사를 추가하려면 rename( prename데비안과 다른 시스템의 perl 변형과 달리) 다음을 수행 할 수 있습니다.

rename '' <prefix> *

이것은 빈 문자열의 첫 번째 항목 (즉시 발견됨)을 찾은 다음 해당 항목을 접두어로 대체 한 다음 나머지 파일 이름을 그 끝에 붙입니다. 끝난.

들어 접미사 , 당신은 할 필요가 펄 버전을 사용 또는 사용 찾기 .


답변

Ruby (1.9+)가있는 경우

ruby -e 'Dir["*"].each{|x| File.rename(x,"PRE_"+x) }'


답변

Perl과 함께 :

perl -e 'rename $_, "PRE_$_" for <*>'