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,DogeDogsono 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"