> 운영 및 유지보수 > 리눅스 운영 및 유지 관리 > 리눅스에서 파일 이름을 수정하는 명령은 무엇입니까?

리눅스에서 파일 이름을 수정하는 명령은 무엇입니까?

青灯夜游
풀어 주다: 2023-02-23 12:05:06
원래의
50343명이 탐색했습니다.

Linux에는 파일 이름을 수정하는 두 가지 명령이 있습니다. 1. 파일 이름을 바꿀 수 있을 뿐만 아니라 파일이나 폴더를 이동할 수도 있는 mv 명령입니다. "mv [매개변수] 이전 파일 이름 새 파일 이름"; rename 명령을 사용하면 파일 이름은 문자열 교체를 통해 일괄적으로 변경될 수 있습니다. 구문은 "rename [parameter] 이전 파일 이름, 새 파일 이름"입니다.

리눅스에서 파일 이름을 수정하는 명령은 무엇입니까?

이 튜토리얼의 운영 환경: CentOS 6 시스템, Dell G3 컴퓨터.

Linux에서 파일이나 디렉터리의 이름을 바꾸려면 mv 명령이나 rename 명령을 사용하는 방법을 공유합니다.

1. mv 명령을 사용하세요

mv 명령은 파일이나 폴더의 이름을 바꾸거나 이동할 수 있습니다.

mv [参数] 旧文件/目录 新文件名/目录
로그인 후 복사

예: 디렉토리 A를 B로 이름 바꾸기

mv A B
로그인 후 복사

예: /a 디렉토리를 /b로 이동하고 c

mv /a /b/c
로그인 후 복사
로 이름을 바꿉니다.

실제로 텍스트 모드에서 파일이나 디렉토리의 이름을 바꾸려면 mv를 사용하면 됩니다. 예를 들어, abc라는 파일의 이름을 1234로 바꾸려는 경우:

mv abc 1234
로그인 후 복사

현재 디렉터리에 1234라는 파일이 있으면 이 파일이 해당 파일을 덮어씁니다.

mv 명령을 사용하여 여러 파일의 이름을 바꾸는 방법은 무엇입니까?

mv 명령은 한 번에 하나의 파일 이름만 바꿀 수 있지만 bash for 또는 while 루프에서 find와 같은 다른 명령과 함께 사용하여 여러 파일의 이름을 바꿀 수 있습니다.

예: 현재 디렉터리에 있는 모든 .html 파일의 이름을 바꾸기 위해 bash for 루프를 사용하여 .html 확장자를 .php로 변경하는 방법.

for f in *.html; do 
    mv -- "$f" "${f%.html}.php"
done
로그인 후 복사

코드를 한 줄씩 분석해 보겠습니다.

● 첫 번째 줄은 for 루프를 생성하고 모든 파일 목록을 반복합니다.html.

● 두 번째 줄은 목록의 각 항목에 적용되며 파일을 .html을 .php로 바꾸는 새 파일로 이동합니다. ${file%.html} 섹션은 쉘 매개변수 확장자 .html을 사용하여 파일 이름에서 해당 부분을 제거합니다.

● done은 루프 세그먼트의 끝을 나타냅니다.

mv와 함께 find 명령을 사용하여 위와 동일한 기능을 얻을 수도 있습니다.

find . -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' \;
로그인 후 복사

find 명령은 이 스위치를 사용하여 현재 디렉터리 mv로 끝나는 모든 .html 파일을 -exec 명령에 하나씩 전달합니다. 문자열 {}은 현재 처리 중인 파일의 이름입니다.

위의 예에서 볼 수 있듯이 mv 명령을 사용하여 여러 파일의 이름을 바꾸는 것은 Bash 스크립트에 대한 좋은 이해가 필요하기 때문에 쉬운 작업이 아닙니다.

2. 이름 바꾸기 명령 사용

이름 바꾸기 명령은 문자열 대체를 사용하여 파일 이름을 일괄 변경합니다.

  • 단일 파일 이름 바꾸기

# 将main1.c重命名为main.c
rename main1.c main.c main1.c
로그인 후 복사
  • rename은 와일드카드를 지원합니다.

?  可替代单个字符
*  可替代多个字符
[charset]  可替代charset集中的任意单个字符
로그인 후 복사

foo1, ..., foo9, foo10, ..., foo278

를 사용하는 경우 foo foo0 foo 이름 바꾸기 오 ?는 파일 이름을 foo1에서 foo9, foo01에서 foo09로 변경합니다. 이름이 변경된 파일은 4자리 이름의 파일만 되며, 파일 이름의 foo는 foo0으로 대체됩니다. rename foo foo0 foo?,会把foo1到foo9的文件重命名为foo01到foo09,重命名的文件只是有4个字符长度名称的文件,文件名中的foo被替换为foo0。

如果使用rename foo foo0 foo??,foo01到foo99的所有文件都被重命名为foo001到foo099,只重命名5个字符长度名称的文件,文件名中的foo被替换为foo0。

如果使用rename foo foo0 foo*,foo001到foo278的所有文件都被重命名为foo0001到foo0278,所有以foo开头的文件都被重命名。

如果使用rename foo0 foo foo0[2]*

rename foo foo0 foo??를 사용하면 foo01부터 foo99까지의 모든 파일은 foo001부터 foo099로 이름이 바뀌고, 이름이 5글자인 파일만 이름이 바뀌며, foo는 파일 이름은 foo0으로 변경됩니다.
  • rename foo foo0 foo*를 사용하면 foo001부터 foo278까지의 모든 파일 이름이 foo0001부터 foo0278로 바뀌고, foo로 시작하는 모든 파일의 이름이 변경됩니다.

    rename foo0 foo foo0[2]*를 사용하면 foo0200부터 foo0278까지의 모든 파일 이름이 foo200부터 foo278로 바뀌고 파일 이름의 foo0이 foo로 대체됩니다.

rename은 정규식을 지원합니다

# 把文件名中的AA替换成aa
rename "s/AA/aa/" * 

# 把.html 后缀的改成 .php后缀
rename "s//.html//.php/" * 

# 把所有的文件名都以txt结尾
rename "s/$//.txt/" *

# 把所有以.txt结尾的文件名的.txt删掉
rename "s//.txt//" *
로그인 후 복사
기본적으로 rename 명령은 기존 파일을 덮어쓰지 않지만 -f 매개변수를 전달하면 기존 파일을 덮어쓸 수 있습니다.
rename -f 's/.html/.php/' *.html
로그인 후 복사

이름 바꾸기 명령 사용의 일반적인 예

파일 이름의 공백을 밑줄로 바꾸세요

rename 'y/ /_/' *
로그인 후 복사
파일 이름을 소문자로 변환
rename 'y/A-Z/a-z/' *
로그인 후 복사

파일 이름을 대문자로 변환

rename 'y/a-z/A-Z/' *
로그인 후 복사
🎜관련 권장 사항: "🎜Linux 비디오 튜토리얼 🎜》🎜🎜

위 내용은 리눅스에서 파일 이름을 수정하는 명령은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿