특정 디렉터리에 있는 다음 이미지 파일의 이름을 바꾸고 싶습니다.
8 -rw-rw-r-- 1 6661 sep 24 10:28 dbConnectionOkBostjan.png
8 -rw-rw-r-- 1 6548 sep 24 10:29 dbConnectionErrorBostjan.png
8 -rw-rw-r-- 1 5708 sep 24 10:29 btConnectionErrorBostjan.png
8 -rw-rw-r-- 1 5911 sep 24 10:30 btConnectionOkBostjan.png
8 -rw-rw-r-- 1 6916 sep 24 10:31 userLogOkBostjan.png
8 -rw-rw-r-- 1 6924 sep 24 10:44 userLogErrorBostjan.png
이제 명령을 사용하여 파일 이름을 바꾸는 방법 mv
과 여러 파일의 이름을 바꾸는 방법도 알고 있지만 이 경우 원본 파일과 동일한 새 이름으로 각 파일의 이름을 바꾸되 단어는 제외하고 싶습니다 Bostjan
. 예를 들어, dbConnectionOkBostjan.png
이름을 바꿔야 하며 dbConnectionOk.png
다른 모든 파일과 동일해야 합니다. 터미널을 사용하여 이 작업을 어떻게 수행할 수 있나요? 이 문제를 해결하기 위해 일반 명령을 사용하고 싶습니다 mv
. 제안된 솔루션을 사용하는 경우답변 1, 다음 오류가 발생합니다.
user@testcomp:~/Pictures/testAppIcons$ for i in *Bostjan*; do mv $i $(echo $i | sed @Bostjan@@); done sed: -e expression #1, char 1: unknown command: `@' mv: missing destination file operand after ‘btConnectionErrorBostjan.png’ Try 'mv --help' for more information. sed: -e expression #1, char 1: unknown command: `@' mv: missing destination file operand after ‘btConnectionOkBostjan.png’ Try 'mv
--help' for more information. sed: -e expression #1, char 1: unknown command: `@' mv: missing destination file operand after ‘dbConnectionErrorBostjan.png’ Try 'mv --help' for more information. sed: -e expression #1, char 1: unknown command: `@' mv: missing destination file operand after ‘dbConnectionOkBostjan.png’ Try 'mv
--help' for more information. sed: -e expression #1, char 1: unknown command: `@' mv: missing destination file operand after ‘userLogErrorBostjan.png’ Try 'mv --help' for more information. sed:
-e expression #1, char 1: unknown command: `@' mv: missing destination file operand after ‘userLogOkBostjan.png’ Try 'mv --help' for more information. user@testcomp:~/Pictures/testAppIcons$
나는 사용하고있다우분투 15.04.
답변1
한 줄로 작성할 수도 있지만 가독성을 위해 구분하겠습니다. 파일 이름을 에코하고 mv의 대상 인수에서 sed를 사용하여 수정합니다.
for i in *Bostjan*; do
mv $i $(echo $i | sed s@Bostjan@@)
done
답변2
사용 mmv
. (먼저 설치해야 할 수도 있습니다.)
mmv "*Botsjan*" "#1#2"