이름이 마지막 하위 디렉터리인 모든 디렉터리를 찾고 싶습니다.문서를 클릭한 다음 이름을 다음으로 바꿉니다.의사. 내 이름을 어떻게 바꿀 수 있나요?
나는 첫 번째 부분을 가지고 있습니다 :
find -type d -name 'doc'
예를 들어 다음과 같은 디렉터리 경로를 반환합니다.
./foo/bar/doc
답변1
find . -depth -type d -name doc -exec sh -c 'mv "${0}" "${0%/doc}/Doc"' {} \;
답변2
답변3
디렉토리를 대문자로 표시하고 4+를 사용하는 경우 bash
다음을 수행해야 합니다.
find . -type d -name doc -print0 \
| while read -rd $'\0' file; do
dname=$(dirname "$file")
fname=$(basename "$file")
mv "$file" "$dname"/"${fname^}"
done
\0
특이한 파일 이름을 올바르게 처리하려면 주의하십시오 .
고쳐 쓰다
~처럼jw013댓글에서 지적한 내용이 ${var^}
예상대로 작동하지 않습니다. 경로를 디렉터리와 파일 이름으로 분리하고 ^
연산자를 $fname
.
그건 그렇고, 고마워요서두르다누락된 파이프를 추가하는 데 사용됩니다.