Я следующий сценарий, чтобы избавиться от символов, которые система FAT32 не хотели:Как обрабатывать вопросительные знаки в команде mv?
bad_chars="\?:\|\"*"
F=`find . | grep [$bad_chars] | head -n1`
while [ "$F" != "" ]
do
new_F=`echo $F` | sed s/[$bad_chars]/_/g`
mv "$F" "$new_F"
F=`find . | grep [$bad_chars] | head -n1`
done
Теперь это застревание на файлы с вопросительными знаками, он приходит с ошибкой
mv: rename ./[FILE_PATH]/What? _.pdf to ./[FILE_PATH]/What_ _.pdf: No such file or directory.
Это не относится ко всем файлам с вопросительными знаками, я попытался добавить файл dummy ?.txt
, и он обработал его в порядке. Существуют другие PDF-файлы в одном пути, но они не похожи по имени.
Если у вас есть утилита переименования вы можете уменьшить его просто 'найти Exec/xargs rename'. Также, как вы это делаете, ломаются имена файлов с новыми символами в них. И вопросительные знаки, скорее всего, не являются вопросительными знаками, а другими плохими персонажами, которых вы не видите. – 123
Я знаю, что это не плохой символ, потому что 'sed' меняет его, и я обнаружил странные символы юникода, которые я вложил в bad_chars, и он отлично их рисует. К сожалению, у меня нет использования переименования (помогая кому-то другому на своем mac) – Cramer
Sed изменит его, потому что вы просто передаете ему строку с вопросительным знаком, а не фактическим именем файла. – 123