Mám problém s použitím příkazu přesunout. Vytvořil jsem dva adresáře s názvem Cat
a Dog
. Pod Cat
Vytvořil jsem soubor s názvem puppies
.
Když se pokusím přesunout puppies
od Cat
na Dog
Dostávám No such file or directory
. Nicméně, když se vrátím a cd Cat
a ls -a
, zobrazuje puppies
. Poté se vrátím do svého domovského adresáře a ls -a
a Cat
a Dog
jsou uvedeny.
Co tedy dělám špatně?
Přijatá odpověď:
Některé užitečné věci, které byste měli vědět při práci se soubory:
- Linux rozlišuje malá a velká písmena (takže
dog
,Dog
aDOG
jsou všechny různé soubory) - Fungování příkazů závisí na tom, kde se nacházíte v souborovém systému
- Podle toho, kde se nacházíte, můžete použít relativní nebo absolutní názvy cest
Pokud jste tedy v nadřazeném adresáři Cat
a Dog
můžete použít relativní názvy cest, jako je tento:
mv Cat/puppies Dog
Snadnou chybou je zadat cestu začínající /
mv /Cat/puppies /Dog
Tím získáte no such file or directory
chyba, protože /
je kořenový adresář a nejsou zde žádné Cat
a Dog
adresáře pod /
. Podívejte se:
ls /
Jedním z důvodů tohoto zmatku je, že systém používá užitečnou zkratku pro domovský adresář uživatele, takže namísto /home/username/somefile
můžete napsat ~/somefile
jako absolutní cesta k somefile
v domovském adresáři vašeho uživatele, tedy za předpokladu Cat
a Dog
jsou v horní části domovského adresáře vašeho uživatele, můžete přesunout puppies
od Cat
na Dog
odkudkoli ve vašem souborovém systému pomocí
mv ~/Cat/puppies ~/Dog
Několik příkladů s použitím relativních názvů cest
Pokud jste v adresáři Cat
, můžete přesunout puppies
takhle
mv puppies ../Dog
..
určuje nadřazený adresář aktuálního pracovního adresáře
Pokud jste v adresáři Dog
můžete štěňata takto pohybovat
mv ../Cat/puppies .
.
určuje aktuální pracovní adresář
Chcete-li zjistit, kde se nacházíte, můžete se obvykle podívat na výzvu, ale pro jistotu to můžete kdykoli zkontrolovat pomocí pwd
což je zkratka pro ‘tisk pracovního adresáře’