Estou baseando minha resposta no fato de que você está tendo problemas para lidar com nomes de arquivos com espaços neles.
Eu tenho um aplicativo Linux que tem que lidar com arquivos cujos nomes contenham espaços incorporados. A seguir, são extraídos do meu script de shell bash que me permitem usar um loop for para encontrar os dois arquivos e fazer algo sobre eles.
No meu caso, foi para passá-los para um programa Clojure que identificaria quais arquivos eram baseados em suas assinaturas de coluna. Ambos os arquivos são arquivos .csv. A injeção de dinheiro está alterando o IFS e restaurando seu valor original quando você terminar. Isso permite que $ fnam contenha o nome do arquivo se ele tiver espaços embutidos nele.
# $IFS is internal file separator.
# The following little code snippet takes into account space-separated files.
# We set the file separator value to something other than space.
ORIGINAL_IFS=$IFS
IFS=$(echo -en "\n\b")
# You have to fond both types of files .CSV or .csv.
#This is the way to do it. cmn 11/1/2012
for fnam in 'find bene_gic_in -maxdepth 1 \
-type f \( -name \*.csv -o -name \*.CSV \) \
-exec echo "{}" \;'
do
# Please note that $fnam may have embedded spaces in it, at this point,
# you could check # for the name, and make a decision about what to do
# with it, like
#
if [ "$fnam" = "a file name i expect" ]; then
# do something.
mv $fnam file_type1
fi
.
.
.
# Bring back original line separator value.
IFS=$ORIGINAL_IFS