Exclui a pasta pai mantendo os arquivos contidos?

5

É possível que, se eu tiver isso:

/folder1/folder2/folder3
/folder1/folder2/file1.txt

Posso excluir a pasta2, mas manter o conteúdo dela?

O resultado seria assim:

/folder1/folder3
/folder1/file1.txt
    
por Hommer Smith 21.03.2014 / 17:24

2 respostas

9

cd /folder1/folder2/
mv * ../
cd ../

Agora verifique o conteúdo da pasta:

ls

Em seguida, use este comando para excluir o diretório. É completamente seguro, pois excluirá somente os diretórios vazios:

rmdir folder2/
    
por Rinzwind 21.03.2014 / 17:32
6

Eu acho que você não precisa realmente excluir algo ... apenas mova-o.

mv  /folder1/folder2/*  /folder1/
rmdir /folder1/folder2/

O primeiro comando move o conteúdo para o diretório pai e o segundo remove o diretório, se estiver vazio. Isso não moverá arquivos ocultos / ponto. Se você quiser também mover arquivos ocultos, precisará:

mv  /folder1/folder2/{*,.*}  /folder1/
rmdir /folder1/folder2/

ou use a opção dotglob no bash. Se você não tiver arquivos de pontos, isso levaria a no matches found: dir1/dir2/.* no bash e o comando falharia. Além disso, você pode ignorar o:

mv: cannot move ‘folder1/folder2/..’ to ‘folder1/..’: Device or resource busy

erros, pois o bash passa . e .. para mv .

    
por Braiam 21.03.2014 / 17:36

Tags