コロンのあるディレクトリがたくさんあります。
例えば
Main_Dir:
-Di_name: Test1-1
--files
-Di_name: Test2-2
--files
(コロン)を削除したいです。スペースに置き換えるか、自分で削除してください。
この目標をどのように達成できますか?
私はDebianを使用しています
答え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
ディレクトリ名に改行やその他のいたずらなバイトが含まれていても、安全に機能します。