Posso pensar em duas possíveis razões pelas quais isso pode acontecer:
- O diretório de origem pode não existir (OR)
- O diretório de origem pode estar vazio
Ignore se nenhum dos dois!
Eu já tentei isso antes. Eu juro que fui capaz de emitir este tipo de comando antes:
mv /home/user/temp1/* /home/user/temp2
Basicamente, recebi este comando aqui: link
Qualquer ideia do porquê está me dizendo
mv: cannot stat '/home/user/temp1/*': No such file or directory
Posso pensar em duas possíveis razões pelas quais isso pode acontecer:
Ignore se nenhum dos dois!
Você precisa usar $USER
para o usuário expandir seu nome de usuário. /home/user
só é válido se você tiver um usuário chamado user
. Isso funcionará se temp1
e temp2
existirem no seu diretório pessoal
mv /home/$USER/temp1/* /home/$USER/temp2
Vou tentar ajudar e esclarecer um pouco a confusão:
Se você quiser mover uma pasta e seu conteúdo para outra, digite:
mv ~/Scripts ~/Podcasts
Se você quiser mover o conteúdo de uma pasta, mas não a própria pasta para outra pasta, insira, por exemplo, mv ~/Scripts/* ~/Podcasts
. Você pode inserir echo ~/Scripts/*
para verificar o conteúdo da pasta
(Se você também precisa saber sobre globstar
, que lhe permitirá recorrer a 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)
Se você estiver usando o bash e o diretório de origem estiver vazio, você poderá modificar o comportamento padrão de expansão glob do shell com:
shopt -s nullglob
para ativar o globo nulo e fazer com que todos os comandos subsequentes, como mv
, se comportem adequadamente quando o diretório de origem estiver vazio. Tenha em atenção que isto pode fazer com que outros comandos, como ls
, se comportem de forma inesperada.
Você pode desativar o globo nulo novamente com:
shopt -u nullglob
Tags files