Para onde meu diretório foi depois de “mv parentdir / mydir ../mydir”?

1

Eu pensei que eu estava movendo um subdiretório para cima, para que fosse um irmão de seu pai. Mas agora é completamente invisível. Já passou?

Aqui está o comando que eu usei:

mv parentdir/mydir ../mydir
    
por user12468 21.11.2009 / 15:39

3 respostas

2

Eu percebi isso. Tudo o que fiz foi mudar o nome para que ele começasse com o .., e isso o escondia do comando "ls".

    
por 21.11.2009 / 15:43
0

Se ../mydir já existia, você o moveu para ../mydir/mydir . Caso contrário, está em ../mydir .

Em um comando como esse, os caminhos são relativos ao diretório de trabalho atual (a menos que o caminho comece com / , nesse caso, é um caminho absoluto). Então o seu comando não disse mv para tornar mydir um irmão de parentdir , você disse para fazer mydir um irmão do diretório de trabalho.

O que você queria fazer era um desses dois:

# make parentdir/mydir to be a sibling of parentdir
$ mv parentdir/mydir ./
$ ls -1
parentdir
mydir

# make parentdir/mydir to be a sibling of parentdir
$ ( cd parentdir ; mv mydir ../ )
$ ls -1
parentdir
mydir
    
por 21.11.2009 / 15:44
0

Ao executar um comando como cp , scp , mv e similares, em que o segundo argumento é um diretório, é mais seguro finalizá-lo com /. , para que você e o comando saibam que você está procurando por um diretório lá. Por exemplo, em vez de fazer isso:

$ mv /opt/foo /temp

Eu faria:

$ mv /opt/foo /temp/.

e receba a mensagem de erro:

mv: cannot move '/opt/foo' to '/temp/.': No such file or directory

porque, claro, eu quis digitar /tmp/. . Se eu tivesse executado o primeiro comando, teria mudado silenciosamente - e sem querer - o nome do diretório.

    
por 24.11.2009 / 15:03