Alla mappar kopieras vid cp -r inte bara den valda
Postat: 20 mar 2011, 11:29
Jag behöver ett script som hittar en mapp på disken, kopierar mappen med dess innehåll (om den hittas) till ett annat ställe för vidare hantering. jag har skrivit följande script:
scriptet läser in mappens namn från en fil och söker sedan efter mappen mha "find". detta fungerar och varje gång jag hittar en mapp kopierar jag den mha "cp". MEN det är här mitt problem uppstår. cp kopierar alla mappar inte bara den mappen jag pekar ut i min $var.
Låt mig beskriva:
ponera att det finns 3 mappar på samma nivå, a, b, c
under b ligger mappen 1.
jag söker efter 1 med find och hittar således ./b/1
då jag kör:
cp -r ./b/1 dest_folder
kopieras ALLA mappar under dest_folder dvs under dest_folder ligger a, b och c mapparna, men det är ju bara b/1/ jag vill kopiera.
Varför blir det så här?
Om jag utlämnar "-r" så får jag varningen :
cp: omitting directory `/b/1`
Vad är felet?
Kod: Markera allt
exec < $1
while read LINE; do
var=`find . -name $LINE`
if [ -z $var ]; then
echo "No match found"
else
echo "Found folder: " $var
cp -r $var dest_folder
fi
done
Låt mig beskriva:
ponera att det finns 3 mappar på samma nivå, a, b, c
under b ligger mappen 1.
jag söker efter 1 med find och hittar således ./b/1
då jag kör:
cp -r ./b/1 dest_folder
kopieras ALLA mappar under dest_folder dvs under dest_folder ligger a, b och c mapparna, men det är ju bara b/1/ jag vill kopiera.
Varför blir det så här?
Om jag utlämnar "-r" så får jag varningen :
cp: omitting directory `/b/1`
Vad är felet?