Eu tenho um diretório que está descompactado, mas está em uma pasta. Como posso mover o conteúdo para um nível acima? Estou acessando o CentOS via SSH.
127
Com a pasta chamada 'myfolder' e subindo um nível na hierarquia de arquivos (o ponto que você deseja colocar) o comando seria:
mv myfolder/* .
Por exemplo, se os dados estavam /home/myuser/myfolder
lá, /home/myuser/
execute o comando
.*
não apenas*
se o arquivo continha arquivos de ponto. Adicione também `&& rmdir myfolder` ao final para remover a pasta agora estranha. Isso é salvo porque será executado apenas se o mv retornar com êxito E porque o rmdir não removerá um diretório não vazio..*
. A remoção da pasta original é trivial e não solicitada; portanto, vamos deixar o OP lidar com isso.*
e.*
em uma linha? apenas curiosidademv
serão fontes, exceto o argumento LAST, que precisa ser o destino para a movimentação (e, no caso de várias fontes, precisa ser uma pasta)./bin/mv: Argument list too long
Apenas para deixar claro, tirado da resposta de Rudu acima e dos comentários.
Se você precisar mover todo o conteúdo, INCLUINDO arquivos que começam com a. (como .htaccess, .git, etc), você precisa incluir * e. * em seu comando. Igual a:
Isso moverá o conteúdo da subpasta para a pasta atual. Observe o espaço antes do último ".".
fonte
mv: rename fake/. to ./.: Invalid argument
emv: rename fake/.. to ./..: Invalid argument
Isso é possível com os seguintes métodos:
Usando
rsync
:Usando
cp
ermdir
:Usando
mv
(com adotglob
opção ativada):onde
foo/
está sua pasta cujo conteúdo deve ser movido um nível acima.Veja:
help shopt
eman bash
.Usando
mv
(como sugerido aqui ):Nota: Faltaria um arquivo chamado
foo/..bar..
.Nota: Para shells POSIX, você precisa
[!.]
.fonte
-v
,-u
,-a
e-r
fazendo? AFAICT,-v
é detalhado, o que apenas faz com que o rsync imprima mais informações.-u
significa atualização - apenas copie um arquivo se for mais novo. Isso não parece relevante.-a
significa arquivo. Isso copiará o proprietário e as permissões do arquivo e tornará a sincronização recursiva.-r
significa recursivo, mas isso já está coberto-a
.-u
é útil quando você não deseja gastar tempo extra movendo dados que já existem (especialmente para dispositivos de armazenamento lento). Eu removi-r
, já que é coberto-a
como você mencionou.mv foo/* foo/.[^.]* .
perderia um arquivo chamado,foo/..bar..
por exemplo. Observe que, para shells POSIX, você precisa[!.]
.rsync -vua --delete-after foo/ .
exclui tudo o que já existe no diretório atual.basta emitir um comando mv
Se você deseja excluir o diretório, adicione
Supondo que você esteja em um diretório pai de (diretório)
Se você estiver dentro do (diretório), então
fonte
rmdir
reclama e sai se o diretório não estiver vazio, enquanto aorm -r
invés disso apenas o teria excluído e todo o seu conteúdo. (É um poka-jugo .).DS_store
no macOS. Omv
comando acima não os moverá (semdotglob
conjunto).para aqueles de vocês em um servidor compartilhado, você teria que usar algo assim
Para mover os arquivos
mv -v ~/public_html/public_html/* ~/public_html/
Para copiar os arquivos
cp -a ~/public_html/public_html/* ~/public_html/
fonte