Baixei uma estrutura de arquivos bastante grande (> 100 GB) para uma subpasta do meu diretório raiz, vamos chamá-la de /folder
. O problema é que eu acidentalmente o copiei para uma subpasta dessa pasta, em vez de apenas diretamente para essa pasta, então agora eu tenho, /folder/folder/*
em vez de /folder/*
qual é o que eu quero. Existe uma maneira melhor de remover o nível extra do que apenas:
# mv /folder/folder/* /folder
# rmdir /folder/folder
Responder1
Se a origem e o destino estiverem no mesmo sistema de arquivos, mv apenas criará outra entrada de diretório, mas não copiará 100 GB de dados. Então essa é a melhor forma de fazer isso, você não precisa procurar outra forma. Mas se estiverem em sistemas de arquivos diferentes, os dados serão copiados. Além disso, você não precisa de rmdir - mv fará isso automaticamente.
Responder2
O mv
comando não move os dados dos arquivos, apenas os nomes dos arquivos. Se você está preocupado com a movimentação de todos os dados de cada arquivo, isso não funcionará.
Responder3
Você pode usar:
# cd /folder/folder
# mv * ../
# rmdir /folder/folder
mas qual é o problema com o que você tinha? Você pode esclarecer o que você quer dizer com uma maneira melhor?
Responder4
Um procedimento um pouco mais simples (menos operações gerais de MV)
mv /folder /surplusfolder
mv /surplusfolder/folder /folder
rmdir /surplusfolder