Ваш вопрос не очень понятен, но если вы подразумеваете, что имена файлов имеют начальные пробелы, то вы хотите перебрать каждое имя файла, и если оно имеет начальные пробелы, переименуйте его.
Поскольку новое имя может существовать, вы должны проверить это тоже.
#!/bin/bash
# rename files with leading whitespace.
# append [1], [2], and so forth, if the new name exists, until an unused name is found.
rename_file() {
local old="$1" new="$2" count=1
if [[ ! -e "${new}" ]]; then
mv -v "${old}" "${new}"
else
while [[ -e "${new} [${count}]" ]]; do
count=$((count + 1))
[[ "${count}" -gt 100 ]] && exit 9 # make sure we don't accidentally loop forever...
done
mv -v "${old}" "${new} [${count}]"
fi
}
[[ -n "$1" ]] && cd "$1"
/bin/ls -1 . | grep $'^[ \t]' | while read file; do
newname="$(echo "${file}" | sed -i -e 's/^[[:space:]]*//')"
rename_file "${file}" "${newname}"
done
Это должно делать свое дело.
Запустите его, находясь в правильном каталоге, или дайте ему каталог в качестве аргумента.