Подтвердить что ты не робот

Удаление пробелов из имен файлов в папке

У меня есть ситуация, когда мне нужно ежедневно пересылать более 400 файлов в папку Xsan и заменять пробелы под-именами в файлах файлов.

Есть ли у кого-нибудь script, который я могу запустить через терминал, например, который сделает это для меня?

4b9b3361

Ответ 1

Здесь вы просматриваете все файлы (и папки) в текущем каталоге:

for oldname in *
do
  newname=`echo $oldname | sed -e 's/ /_/g'`
  mv "$oldname" "$newname"
done

Обратите внимание, что это будет перезаписывать файлы с тем же именем. То есть, если есть два файла, у которых в противном случае идентичные имена файлов, но у каждого есть символы подчеркивания, где у другого есть пробелы. В этой ситуации тот, у которого были подчеркивания, будет перезаписан тем, у которого были пробелы. Эта более длинная версия пропускает эти случаи:

for oldname in *
do
  newname=`echo $oldname | sed -e 's/ /_/g'`
  if [ "$newname" = "$oldname" ]
  then
    continue
  fi
  if [ -e "$newname" ]
  then
    echo Skipping "$oldname", because "$newname" exists
  else
    mv "$oldname" "$newname"
  fi
done