Как обрабатывать файлы, имена которых содержат пробелы, в сценарии оболочки.
Вот что я пытаюсь
find /abc/xyz -name 'BY567*.csv' | while read fname
do
mv "$fname" ./archive/$(basename $fname)-$(date +%Y%m%d-%T)
done
Но когда я это делаю, имя файла удаляется после пробела. Например, если имя файла BY567_Test file.csv, оно будет изменено на BY567_Test-datetimestamp, а не на BY567_Test file.csv-datetimestamp.
Заключите в двойные кавычки конец строки и базовое имя:
mv "$fname" "./archive/$(basename "$fname")-$(date +%Y%m%d-%T)"
Переменные будут интерпретированы, и пробелы должны быть в порядке.