Tentando usar o comando move (mv), mas não consigo “nenhum arquivo ou diretório”

0

Estou tendo problemas ao usar o comando Mover. Eu criei dois diretórios chamados Cat e Dog . Em Cat , criei um arquivo chamado puppies .

Quando tento mover puppies de Cat para Dog , obtenho No such file or directory . No entanto, quando eu voltar e cd Cat e ls -a , ele mostra puppies . Em seguida, volto para meu diretório pessoal e ls -a e Cat e Dog estão listados.

Então, o que estou fazendo de errado?

    
por Ravanell Lang 30.05.2016 / 15:05

2 respostas

4

Algumas coisas úteis para saber ao fazer coisas com arquivos:

  • O Linux é sensível a maiúsculas e minúsculas (por isso, dog , Dog e DOG são arquivos diferentes)
  • Como os comandos funcionam depende de onde você está no sistema de arquivos
  • Com base em onde você está, é possível usar pathnames relativos ou absolutos

Portanto, se você estiver no diretório pai de Cat e Dog , poderá usar nomes de caminho relativos, como este:

mv Cat/puppies Dog

Um erro fácil de fazer é digitar o nome do caminho começando com /

mv /Cat/puppies /Dog

Isso gerará um erro no such file or directory , porque / é o diretório raiz e não há diretórios Cat e Dog em / . Dê uma olhada:

ls /

Um motivo para essa confusão é que o sistema usa um atalho útil para o diretório pessoal do usuário, portanto, em vez de /home/username/somefile , você pode digitar ~/somefile como o nome de caminho absoluto de somefile no diretório inicial do usuário. supondo que Cat e Dog estejam na parte superior do diretório pessoal do usuário, você pode mover puppies de Cat para Dog de qualquer lugar em seu sistema de arquivos com

mv ~/Cat/puppies ~/Dog

Alguns exemplos usando nomes de caminho relativos

Se você estiver no diretório Cat , poderá mover puppies como este

mv puppies ../Dog

.. especifica o diretório pai do diretório de trabalho atual

Se você está no diretório Dog você pode mover filhotes como este

mv ../Cat/puppies .

. especifica o diretório de trabalho atual

Para descobrir onde você está, normalmente você pode olhar para o seu prompt, mas só para ter certeza, você sempre pode verificar com pwd , que significa 'imprimir diretório de trabalho'

    
por Zanna 30.05.2016 / 17:07
0

O comando que eu usaria aqui é (supondo que eles estejam no nível superior de seu diretório pessoal):

mv ~/Cat/puppies ~/Dog/puppies 

Se o diretório puppies contiver mais diretórios, você precisará adicionar o sinalizador recursivo -r , o que tornaria o comando semelhante:

mv -r ~/Cat/puppies ~/Dog/puppies 

Observe que o comando faz distinção entre maiúsculas e minúsculas.

    
por Dan 30.05.2016 / 15:15