mv: não é possível stat com *

10

Eu tentei isso antes. Juro que fui capaz de emitir esse tipo de comando antes:

mv /home/user/temp1/* /home/user/temp2

Basicamente, recebi este comando a partir daqui: /superuser/273254/move-files-and-folders-recursively-in-linux

Alguma idéia de por que está me dizendo

mv: cannot stat `/home/user/temp1/*': No such file or directory
user1012451
fonte

Respostas:

6

Eu posso pensar em 2 possíveis razões pelas quais isso pode acontecer:

  1. O diretório de origem pode não existir (OR)
  2. O diretório de origem pode estar vazio

Ignore se nenhum dos dois!

l0n3sh4rk
fonte
5

Você precisa usar $USERpara o usuário expandir para o seu nome de usuário. /home/useré válido apenas se você tiver um usuário chamado user. Isso funcionará se temp1e temp2existir no diretório inicial

mv /home/$USER/temp1/* /home/$USER/temp2
Rinzwind
fonte
3

Vou tentar ajudar e esclarecer um pouco a confusão:

  • Se você deseja mover uma pasta e seu conteúdo para outra, insira:

    mv ~/Scripts ~/Podcasts

  • Se você deseja mover o conteúdo de uma pasta, mas não a pasta em si, para outra pasta, insira, por exemplo mv ~/Scripts/* ~/Podcasts,. Você pode entrar echo ~/Scripts/*para verificar o conteúdo da pasta

  • (Se você também precisar conhecer globstar, o que permitirá que você recorra em todos os níveis de diretório, consulte este artigo e este . Ele pode ser ativado com shopt -s globstar, mas isso precisará ser colocado no .bashrc para funcionar permanentemente. .)

(O tilde~ em ~ / Scripts é expandido para /home/mike/ou seu nome de usuário automaticamente pelo shell)

Comunidade
fonte
0

Se você estiver usando o bash e o diretório de origem estiver vazio, poderá modificar o comportamento padrão de expansão glob do shell com:

shopt -s nullglob

para ativar o nullglob e fazer com que os comandos seguintes mvse comportem corretamente quando o diretório de origem estiver vazio. Cuidado que isso pode fazer com que outros comandos lsse comportem inesperadamente.

Você pode desativar o nullglob novamente com:

shopt -u nullglob

Para mais informações, veja aqui e aqui .

Comunidade
fonte