[linux] Re: rotzooi in filenamen

Paul Slootman paul+nospam op wurtel.net
Vr Aug 22 16:54:09 CEST 2014


On Fri 22 Aug 2014, paai wrote:

> ik zit in een shellscript (bash) te rommelen met 5000 bestanden op een 
> server die rotnamen hebben, met haakjes, spaties, singlequotes, noem 
> maar op.
> Ze worden in ieder geval niet afgevangen door de parameters tussen 
> dubbele quotes te zetten. Is er een krachtiger manier om te quoten, 
> zodat de bestandsnamen wel gepikt worden?

Misschien moet je wat concreter zijn met wat de situatie is en wat er
dan mis gaat. Een simpel testje leert dat bash weinig moeite heeft met
filenamen met quotes enzo:

$ cat x.bash
#!/bin/bash

x='bla"'

echo "$x"
touch "$x"
ls -l "$x"
rm "$x"
ls -l "$x"

$ bash -x x.bash
+ x='bla"'
+ echo 'bla"'
bla"
+ touch 'bla"'
+ ls -l 'bla"'
-rw-r--r-- 1 paul paul 0 Aug 22 16:50 bla"
+ rm 'bla"'
+ ls -l 'bla"'
ls: cannot access bla": No such file or directory

oftewel doet gewoon wat ie moet.
Ook met:
    x="b(l a\"'"
doet ie het gewoon:

+ x='b(l a"'\'''
+ echo 'b(l a"'\'''
b(l a"'
+ touch 'b(l a"'\'''
+ ls -l 'b(l a"'\'''
-rw-r--r-- 1 paul paul 0 Aug 22 16:53 b(l a"'
+ rm 'b(l a"'\'''
+ ls -l 'b(l a"'\'''
ls: cannot access b(l a"': No such file or directory



Paul



More information about the Linux mailing list