콜론이 있는 디렉토리가 많이 있습니다.
예를 들어
Main_Dir:
-Di_name: Test1-1
--files
-Di_name: Test2-2
--files
(콜론)을 제거하고 싶습니다. 공백으로 바꾸거나 직접 제거하세요.
이 목표를 어떻게 달성할 수 있나요?
나는 데비안을 사용하고 있습니다
답변1
Bash, Ksh 또는 Zsh와 모든 디렉터리가 동일한 수준에 있다고 가정합니다.
# loop over the directories
for i in */; do
# if they have a ':' semi-colon in their name
# replace ':' using parameter expansion¹, (the space is already there)
[[ "$i" = *:* ]] && mv -- "$i" "${i/:}"
done
답변2
-print0
POSIX 표준이 아니지만( 및 옵션 으로 인해 -d ''
) 매우 안전하고 방탄 방식입니다.
cd /the/dir/containing/colon/dirnames
find . -maxdepth 1 -type d -name '*:*' -print0 | while read -r -d '' DIR ; do mv -- "$DIR" "$(echo "$DIR" | sed 's/://g')" ; done
디렉터리 이름에 줄 바꿈이나 기타 장난스러운 바이트가 포함되어 있어도 안전하게 작동합니다.