
스크립트를 만들었습니다./홈/프라스타목차. 내부에 다른 디렉토리를 만들었습니다./홈/프라스타명명 된테스트 디렉토리. 그 안에 파일이 여러 개 있어요/home/prashast/test 디렉토리. 스크립트를 실행할 때/홈/프라스타디렉터리는 그 안에 있는 파일에 영향을 주지 않습니다./home/prashast/test 디렉토리.
#!/bin/bash
for f in $(ls /home/prashast/TestDirectory/); do
mv "$f.txt" "$f.text";
done
답변1
ls
결과를 구문 분석하지 않음, 대신 이 코드를 사용하세요.
for f in /home/prashast/TestDirectory/*; do
echo mv "$f" "${f%.*}.text";
done
우리는 ${f%.*}
처음 보일 때까지 파일 이름의 끝부터 시작 부분까지 제거하는 쉘 인수 확장 표현식(첫 번째 접미사 잘라내기)을 사용하고 있습니다 .
.
관련 장을 읽어보세요Bash 쉘 매개변수 확장더 알아보기.