2016-04-11 23 views
0

mit der ersten Zeile meines Codes, ich versuche, alle Dateien zu bekommen und speichern Sie es auf der Variablen "Dateien".lesen Dateiname mit Leerzeichen

einige Dateien haben Platz auf dem Namen, wie: filename.json 15-03-2015 und wegen dieses Speicherplatzes ist es nicht als eine Datei identifiziert. kann mir jemand dabei helfen?

files=($(find /sapfiler/WEBADM/test/ | xargs -0)) 
size_oldest=0 
for files in ${files[*]} 
do 
    echo $files 
    echo "size_old="$size_oldest 

    if [ -f $files ] 
    then 
      size_new=($(du $files | awk '{print $1}')) 
      size_oldest=`expr $size_oldest + $size_new` 
    fi 

    if [ $size_oldest -gt $resultFilesLimit ] 
    then 

    fi 

Antwort

0

Im Allgemeinen getan, sollten Sie doppelte Anführungszeichen um variable Expansion ($files) verwenden, wenn die variable Leerzeichen enthalten. Sie müssen also jedes Auftreten von $files zu "$files" ändern. Auch die anfängliche Konstruktion der Liste funktioniert nicht im Falle von Leerzeichen. Ich schlage etwas wie:

+0

Alternativ (da das OP nicht angegeben, welche Shell verwendet werden soll), könnte man zu Zsh wechseln, wo das lästige Zitieren der Variablen nicht benötigt wird. – user1934428

+0

Ich nahm an, dass er Bash verwendet. Jimmy, habe ich recht? –

+0

Ich benutze Bash, Jungs. – jimmy

Verwandte Themen