Ho problemi con il comando di spostamento. Ho creato due directory chiamate Cat
e Dog
. Sotto Cat
Ho creato un file chiamato puppies
.
Quando provo a spostare puppies
da Cat
a Dog
Ottengo No such file or directory
. Tuttavia, quando torno indietro e cd Cat
e ls -a
, mostra puppies
. Quindi, torno alla mia home directory e ls -a
e Cat
e Dog
sono elencati.
Allora cosa sbaglio?
Risposta accettata:
Alcune cose utili da sapere quando si eseguono operazioni con i file:
- Linux fa la distinzione tra maiuscole e minuscole (quindi
dog
,Dog
eDog
sono tutti file diversi) - Il funzionamento dei comandi dipende da dove ti trovi nel filesystem
- In base a dove ti trovi puoi usare parente o assoluto percorsi
Quindi, se sei nella directory principale di Cat
e Dog
puoi usare percorsi relativi, come questo:
mv Cat/puppies Dog
Un errore facile da fare è digitare il percorso che inizia con /
mv /Cat/puppies /Dog
Questo darà un no such file or directory
errore, perché /
è la directory principale e non ci sono Cat
e Dog
directory in /
. Dai un'occhiata:
ls /
Uno dei motivi di questa confusione è che il sistema utilizza un'utile scorciatoia per la directory home dell'utente, quindi invece di /home/username/somefile
puoi digitare ~/somefile
come percorso assoluto di somefile
nella home directory del tuo utente, quindi, supponendo Cat
e Dog
sono in cima alla home directory del tuo utente, puoi spostare puppies
da Cat
a Dog
da qualsiasi punto del tuo filesystem con
mv ~/Cat/puppies ~/Dog
Un paio di esempi che utilizzano percorsi relativi
Se sei nella directory Cat
, puoi spostare puppies
così
mv puppies ../Dog
..
specifica la directory principale della directory di lavoro corrente
Se sei nella directory Dog
puoi spostare i cuccioli in questo modo
mv ../Cat/puppies .
.
specifica la directory di lavoro corrente
Per sapere dove sei, di solito puoi guardare il tuo prompt, ma per essere sicuro, puoi sempre controllare con pwd
che sta per "stampa directory di lavoro"