Ero sivun ”Komentorivin perusteet” versioiden välillä
Siirry navigaatioon
Siirry hakuun
p
ei muokkausyhteenvetoa
LP (keskustelu | muokkaukset) (huomautus DOS-käyttäjille (jokerit); ctrl-alt-fx toimii myös tekstitilassa; välilyönti rm-esimerkkiin; täydennystä jokerikäyttöön) |
Pb (keskustelu | muokkaukset) pEi muokkausyhteenvetoa |
||
Rivi 57: | Rivi 57: | ||
Tiedosto kopioidaan komennolla | Tiedosto kopioidaan komennolla | ||
cp tiedosto kopio | $ cp tiedosto kopio | ||
Kokonainen hakemisto kopioitaessa on käytettävä valitsinta -R: | Kokonainen hakemisto kopioitaessa on käytettävä valitsinta -R: | ||
cp -R hakemisto hakemiston_kopio | $ cp -R hakemisto hakemiston_kopio | ||
Vastaavasti tiedostojen siirtäminen tapahtuu komennolla | Vastaavasti tiedostojen siirtäminen tapahtuu komennolla | ||
mv vanha_tiedostonimi uusi_tiedostonimi | $ mv vanha_tiedostonimi uusi_tiedostonimi | ||
samalla tavalla voi siirtää myös hakemistoja. | samalla tavalla voi siirtää myös hakemistoja. | ||
Tiedostojen poistaminen taas tapahtuu komennolla | Tiedostojen poistaminen taas tapahtuu komennolla | ||
rm tiedosto toinen_tiedosto "kolmas tiedosto" | $ rm tiedosto toinen_tiedosto "kolmas tiedosto" | ||
Poistettavia tiedostoja voidaan siis antaa kerralla useampia. Hakemisto sisältöineen poistetaan [[valitsin|valitsimen]] -r avulla ("rekursiivisesti"; tyhjän hakemiston voi poistaa myös komennolla rmdir). | Poistettavia tiedostoja voidaan siis antaa kerralla useampia. Hakemisto sisältöineen poistetaan [[valitsin|valitsimen]] -r avulla ("rekursiivisesti"; tyhjän hakemiston voi poistaa myös komennolla [[rmdir]]). | ||
rm -r hakemisto | $ rm -r hakemisto | ||
rmdir tyhjä_hakemisto | $ rmdir tyhjä_hakemisto | ||
== Täydentäminen tabulaattorilla == | == Täydentäminen tabulaattorilla == | ||
Rivi 94: | Rivi 94: | ||
Jos siis edellisessä esimerkissä kirjoittaisimme komennon | Jos siis edellisessä esimerkissä kirjoittaisimme komennon | ||
rm -r p* | $ rm -r p* | ||
poistuisivat hakemistot <tt>pelit</tt> ja <tt>pikkupelit</tt> sisältöineen, koska ne alkavat p-kirjaimella. Vastaavasti kaikkiin "testi"-päätteisiin tiedostoihin ja hakemistoihin viitattaisiin merkinnällä <tt>*testi</tt> ja kaikkiin tiedostoihin/hakemistoihin, joiden nimessä esiintyy jossain kohtaa sana "linux" merkinnällä <tt>*linux*</tt>. | poistuisivat hakemistot <tt>pelit</tt> ja <tt>pikkupelit</tt> sisältöineen, koska ne alkavat p-kirjaimella. Vastaavasti kaikkiin "testi"-päätteisiin tiedostoihin ja hakemistoihin viitattaisiin merkinnällä <tt>*testi</tt> ja kaikkiin tiedostoihin/hakemistoihin, joiden nimessä esiintyy jossain kohtaa sana "linux" merkinnällä <tt>*linux*</tt>. | ||
Toinen jokerimerkki on kysymysmerkki (?), joka viittaa mihin tahansa yhteen kirjaimeen ( | Toinen jokerimerkki on kysymysmerkki (?), joka viittaa mihin tahansa yhteen kirjaimeen (ääkkösten yms. osalta "kirjain" saattaa määräytyä eri tavoilla). Esimerkiksi merkintä <tt>a?</tt> vastaisi mm. merkintöjä <tt>aa, ab, ac,...</tt>, mutta ei merkintää <tt>aaa</tt>. Esimerkiksi voisimme poistaa kaikki kolmesta merkistä koostuvat tiedostot komennolla | ||
rm ??? | $ rm ??? | ||
(tämän sijaan kannattaa usein käyttää muotoa <tt>rm -i ???</tt>, joka pyytää varmistuksen joka tiedoston osalta) | (tämän sijaan kannattaa usein käyttää muotoa <tt>rm -i ???</tt>, joka pyytää varmistuksen joka tiedoston osalta) | ||
Rivi 104: | Rivi 104: | ||
Klassinen "ansa" on se, että <tt>.*</tt> tavallisten [[piilotiedosto]]jen lisäksi viittaa myös hakemistoihin <tt>.</tt> ja <tt>..</tt>, joten <tt>rm -r .*</tt> ei poista pelkästään kaikkia piilotiedostoja ja -piilohakemistoja vaan myös nykyisen työhakemiston ylähakemiston kaikkine alihakemistoineen. Tämän sijaan voi käyttää toista rakennetta, jolla määrätään että toisen merkin on oltava kirjain (tässä [[wikipedia:fi:ASCII|ASCII]]-kirjain): | Klassinen "ansa" on se, että <tt>.*</tt> tavallisten [[piilotiedosto]]jen lisäksi viittaa myös hakemistoihin <tt>.</tt> ja <tt>..</tt>, joten <tt>rm -r .*</tt> ei poista pelkästään kaikkia piilotiedostoja ja -piilohakemistoja vaan myös nykyisen työhakemiston ylähakemiston kaikkine alihakemistoineen. Tämän sijaan voi käyttää toista rakennetta, jolla määrätään että toisen merkin on oltava kirjain (tässä [[wikipedia:fi:ASCII|ASCII]]-kirjain): | ||
rm .[a-zA-Z]* | $ rm .[a-zA-Z]* | ||
Toinen ansa on se, että ylimääräinen välilyönti voi aiheuttaa ikäviä yllätyksiä (erityisesti tiedostoja [[bash-skriptaus|automaattisesti käsiteltäessä]]). Tässä poistetaan sekä .?-tyyliset piilotiedostot että kaikki tavalliset tiedostot: | Toinen ansa on se, että ylimääräinen välilyönti voi aiheuttaa ikäviä yllätyksiä (erityisesti tiedostoja [[bash-skriptaus|automaattisesti käsiteltäessä]]). Tässä poistetaan sekä .?-tyyliset piilotiedostot että kaikki tavalliset tiedostot: | ||
rm .[a-z] * | $ rm .[a-z] * | ||
DOS:sta poiketen komentotulkki tulkitsee jokerimerkit itse eikä välitä niitä kutsutulle ohjelmalle. Jos jokerimerkit viittaavat eri ympäristöön (kuten usein esimerkiksi komennoissa [[scp]] ja [[tar]]), ne on suojattava komentotulkin tulkinnoilta, joko kenoviivalla tai [[#Lainausmerkkien käyttö|lainausmerkeillä]]: | DOS:sta poiketen komentotulkki tulkitsee jokerimerkit itse eikä välitä niitä kutsutulle ohjelmalle. Jos jokerimerkit viittaavat eri ympäristöön (kuten usein esimerkiksi komennoissa [[scp]] ja [[tar]]), ne on suojattava komentotulkin tulkinnoilta, joko kenoviivalla tai [[#Lainausmerkkien käyttö|lainausmerkeillä]]: | ||
scp jokinkone:kopioitavat/\*.txt ~/kopioidut_tekstitiedostot | $ scp jokinkone:kopioitavat/\*.txt ~/kopioidut_tekstitiedostot | ||
scp "jokinkone:kopioitavat/*.txt" ~/kopioidut_tekstitiedostot | $ scp "jokinkone:kopioitavat/*.txt" ~/kopioidut_tekstitiedostot | ||
== Putkitus == | == Putkitus == |