& kör ett till program på samma rad, egentligen som en logisk AND(returnerar sant om och endast om båda delar var sanna) men resultatet är att du kör båda två. Så det du gjort i detta fall är helt enkelt att du kört "cd /" och sen "mapp".
Ett tips är att använda command completion - Nästan överallt i Linux-terminalen kan du använda Tab-knappen för att skriva färdigt ett ord som du börjat på. Trycker du två gånger får du en lista på möjliga kompletteringar som går att göra på just det stället i kommandot. Detta är ett bra sätt att skriva både snabbare och säkrare.
@milky81: & instruerar ditt shell att köra kommandot i bakgrunden. Din rad har sett ut som två separata kommandon där cd / har körts i bakgrunden (och inte påverkat ditt första shell) och mapp som vanligt. Såvida inte mapp även var ett annat giltigt kommando i din path har du inte gjort något farligt.
& kör ett till program på samma rad, egentligen som en logisk AND(returnerar sant om och endast om båda delar var sanna) men resultatet är att du kör båda två. Så det du gjort i detta fall är helt enkelt att du kört "cd /" och sen "mapp".
Nja, du blandar ihop & med &&. && fungerar som du säger att den kör det andra kommandot endast om det första lyckas. Ett ensamt & avslutar däremot ett asynkront kommando, på samma sätt som ny rad eller ; avslutar ett synkront kommando. Så & efter ett kommando kommer att köra det kommandot i bakgrunden och genast returnera. I detta fallet blir alltså resultatet att "cd /" börjar köras i bakgrunden, och därefter körs "mapp" oavsett om "cd /" är klart eller inte.
Och eftersom "cd /" körs i ett separat sub-skal så kommer det inte att påverka skalet som du använder. Så "cd /&mapp" kommer rent praktiskt att köra "mapp" utan att ändra vilken mapp du befinner dig i, medan "cd / && mapp" kommer att gå till / och därefter köra "mapp" om "cd /" utfördes korrekt. "cd /&&mapp" är jag dock lite osäker på hur det tolkas.