Preciso excluir todo o conteúdo de uma pasta no CentOS, mas não a própria pasta.
Por exemplo: tenho uma pasta chamada "MYFOLDER" que contém as subpastas FOLD_1, FOLD_2, FOLD_3, FOLD_4 ... etc, e alguns arquivos. Preciso excluir todas essas pastas e arquivos, mas não a pasta MYFOLDER do contêiner. Eu preciso desse diretório para direcionar os resultados de um processo anterior.
Eu tentei com o rm -rf
comando, mas isso exclui a pasta do contêiner também.
shopt -s dotglob
primeiro.rm -R /path/to/myfolder/*
é a sintaxe correta para evitar solicitações excessivas para aprovar a exclusão de todos os arquivos e subpastas. Observe a capitalR
.Você pode usar:
Isso exclui também os arquivos e pastas ocultos. Se você tiver muitos arquivos no diretório MYFOLDER, execute:
fonte
meta/
diretório, então eu queria tentar a alternativa xargs, no entanto, recebo estas mensagens de erro:ls: cannot access meta/.[^.]: No such file or directory ls: cannot access meta/.??*: No such file or directory rm: missing operand
bash
shell. O shell deve suportar "Expansão de chaves" e "Expressões regulares" para padrões de arquivos.A maneira mais fácil, na minha opinião, é excluir o diretório inteiro, inclusive ele próprio, e depois recriar a pasta. Há situações em que essa não é uma boa solução (scripts autônomos ou pipelines mais complexos), mas você não especificou por que não deseja excluir a pasta.
Opa Você especificou (reli seu post). Bem, ainda, excluir e recriar pode funcionar. Especialmente se você encadear comandos juntos, como
Ou
fonte
E se
Isso exclui arquivos ocultos (os que começam com um ponto) também.
fonte
Experimente
rm -r -f filename
trabalhar com o CentOS 6.xfonte
Eu recomendo fortemente essa alternativa (ela também remove arquivos com espaços nos nomes):
fonte