Removendo diretórios infinitamente aninhados

4

Deixe-me começar dizendo que este é um Terminal Mac que estou usando. Não Linux, mas eu assumi que eu obteria as melhores respostas aqui, pois isso tem a ver com o Unix e a linha de comando não é nada sobre o próprio Mac.

De qualquer forma, aqui está o problema. Em uma tentativa de ser extremamente preguiçoso, eu tentei escrever uma função no meu ~ / .bashrc que me deixaria entrar em uma pasta "dever de casa", criar uma pasta com a data de hoje, passar para a pasta e abrir o vim com o dado nome do arquivo ... tudo de uma vez. Parecia algo como ...

export DATE="$( date +%d-%b )"
function hw() {
  cd ~/Java/Programs/HW
  mkcd $DATE
  vim "$*"
}

mkcd é uma função que faz a pasta e se move para ela ao mesmo tempo. Esta é a aparência da minha função agora e funciona muito bem. No entanto, em minhas muitas tentativas para fazer este trabalho eu cometi um erro realmente estúpido e acabei com algum tipo de loop infinito com a minha parte mkcd ... ainda não tenho certeza como eu consegui isso e eu já excluí o código. Bem, o que aconteceu quando eu fiz isso é bastante óbvio ... Agora eu tenho uma pasta chamada 27-Jan que tem infinitamente muitas pastas chamadas 27-Jan dentro dele. (Como eu disse realmente estúpido)

Bem, para fazer com que pare de me colocar cada vez mais fundo, toco ^ c e viola. Eu parei ... mudei de volta para a pasta ~ / e fiz um sudo rápido rm 27-Jan/ . Para minha surpresa (e preocupação) isso não funcionou. Eu tentei um para mais coisas para se livrar dele, mas nada fez nada. Então, sendo inteligente como eu sou ... eu mudei para .Trash e parou de se preocupar com isso. Desde então, esvaziei o lixo algumas vezes e nunca notei, mas aquela pasta ensanguentada não vai embora! Está ocupando zero bytes no meu disco rígido, mas ainda está lá com todas as suas subpastas.

O que eu tentei:

sudo rm 27-Jan/
sudo rm -r 27-Jan/ 

Este disse override rwxr-xr-x caldwell/staff for 27-Jan/(many times repeated)/27-Jan? Para o qual eu respondi y e yes e mesmo si (no caso de falar espanhol) ... toda vez que ele diz No such file or directory e repete a pergunta anterior. / p>

Alguém já viu algo assim? E você sabe o que eu posso fazer para que isso desapareça?

    
por CaldwellYSR 13.06.2012 / 00:33

3 respostas

6

Tente rm -rf para evitar o aviso.

-f, --force           ignore non-existent files, never prompt
    
por 13.06.2012 / 01:10
4

Uma maneira muito segura seria - se a sua localização fosse compatível com -delete - para usar o recurso de exclusão:

find -type d -name 27-Jan -empty -delete

Como -delete implica -depth , primeiro ele percorre a árvore até o diretório 3275, exclui, aumenta um passo, 3274 também está vazio e pode ser excluído, subir para 3273 e assim por diante. ..

man find:

   -depth Process each directory's contents before the directory itself.
          The -delete action also implies -depth.
    
por 13.06.2012 / 01:45
3

Você pode remover hierarquias de diretório de forma recursiva usando a opção -r de rm

-r, -R, --recursive
              remove directories and their contents recursively

Então, emitindo

rm -r 27-Jan

deve se livrar do diretório. A menos que você já tenha tentado isso, é claro. Nesse caso, você poderia especificar o erro que você obteve?

    
por 13.06.2012 / 00:47