Localizando e excluindo todos os arquivos que começam com. dentro de um diretório

2

Eu estou tentando encontrar e excluir todos os arquivos que começam com . dentro de um diretório, e sei que eu poderia fazer isso através do terminal de comando, mas eu sou muito novo para o Ubuntu e não sei bem o meu contornar comandos ainda. Qualquer ajuda seria apreciada!

    
por JonesCode 27.04.2014 / 01:03

2 respostas

6

Os arquivos ocultos não precisam ser arquivos binários.

Você pode usar o seguinte comando para fazer isso:

find /path/to/start/ -maxdepth 1 -name ".*" -type f -delete

Isso pesquisará arquivos em /path/to/start/ começando com um ponto ( -name ".*" , * significa tudo) sem pesquisar em sub-diretórios ( -maxdepth 1 , alterar 1 para pesquisar mais profundamente) somente arquivos ( -type f ) e irá remover todos os resultados ( -delete ).

Nem sempre é uma boa idéia excluir esses arquivos! Certifique-se de que você sabe o que está fazendo antes de executar isso. Alguns arquivos estão ocultos por um motivo.

    
por Louis Matthijssen 27.04.2014 / 01:22
1

Você também pode fazer isso usando shell globs e um loop for:

for file in .[^.]*; do rm "$file"; done

O for file in GLOB; do ... done expandirá o GLOB para todos os nomes de arquivos correspondentes, fará a iteração desses arquivos, salvando cada um deles como $file e executando os comandos entre do e done .

A glob .[^.]* corresponderá a todos os arquivos iniciados por . e seguidos por um caractere não pontual ( [^.] ). O último é necessário para evitar corresponder . e .. /.

Então, por exemplo:

$ ls -1A
.dot and spaces
.dotfile1
internal.dot
nodot
$ for file in .[^.]*; do rm -v "$file"; done
removed ‘.dot and spaces’
removed ‘.dotfile1’
$ ls -1A
internal.dot
nodot

Se você deseja executar isso para um diretório diferente daquele em que você está atualmente, basta adicionar o caminho para o glob. Por exemplo:

for file in /home/terdon/foobar/.[^.]*; do rm "$file"; done

É claro que o loop em si não é necessário como @gniourf_gniourf apontou nos comentários, e você pode simplesmente apagar todos os arquivos com

rm .[^.]*
    
por terdon 27.04.2014 / 13:29