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로 대체됩니다. # 把文件名中的AA替换成aa
rename "s/AA/aa/" *
# 把.html 后缀的改成 .php后缀
rename "s//.html//.php/" *
# 把所有的文件名都以txt结尾
rename "s/$//.txt/" *
# 把所有以.txt结尾的文件名的.txt删掉
rename "s//.txt//" *
rename -f 's/.html/.php/' *.html
rename 'y/ /_/' *
rename 'y/A-Z/a-z/' *
rename 'y/a-z/A-Z/' *
위 내용은 리눅스에서 파일 이름을 수정하는 명령은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!