Como renomear um diretório no Linux

Publicados: 2022-06-16
Laptop Linux mostrando um prompt bash
fatmawati achmad zaenuri/Shutterstock.com

Renomear um diretório no Linux é fácil e há muitas maneiras de fazer isso. Desde renomear um único diretório até localizar e renomear muitos, veja como fazer isso.

Seus dados estão seguros

Renomear diretórios é algo que todos nós precisamos fazer de tempos em tempos.

Podemos criar um diretório e escrever errado seu nome, e queremos corrigi-lo. Frequentemente, a finalidade de um diretório muda ao longo do tempo ou ao longo da vida de um projeto, e você deseja ajustar o nome para refletir seu novo uso. Talvez você tenha descompactado um arquivo e tenha criado uma árvore de diretórios com os nomes dos diretórios em maiúsculas e você gostaria deles em minúsculas.

O que são arquivos e pastas de computador?
RELACIONADO O que são arquivos e pastas de computador?

Seja qual for a razão. renomear um diretório não faz nada com os dados contidos nele. Ele altera o caminho para esses dados, mas os arquivos e diretórios dentro do diretório renomeado não são tocados.

Não renomeie os diretórios do sistema. Alterar o caminho para arquivos e comandos do sistema terá um efeito prejudicial no funcionamento do seu computador, para dizer o mínimo. Se você precisar usar o sudo para renomear um diretório - a menos que realmente saiba o que está fazendo - as chances são de que você não deveria renomeá-lo.

Usando o comando mv

Nos casos mais simples, tudo o que realmente precisamos é do comando mv . Isso é parte integrante de todas as distribuições Linux, portanto, não há nada para instalar.

Propaganda

O comando mv tem mais de 50 anos no momento da escrita. Ele vem desde o início do Unix, quando comandos curtos e enigmáticos estavam em voga, provavelmente para reduzir o número de caracteres que tinham que passar por linhas seriais lentas de teletipos e terminais burros para o computador real.

Na verdade, significa “mover” e pode ser usado para mover arquivos de um diretório para outro. Se você mover um arquivo para o mesmo local em que ele já está e lhe der um novo nome, você renomeou o arquivo. E podemos fazer o mesmo com diretórios.

Existem dois subdiretórios neste diretório.

 ls 

Listando dois subdiretórios

Para renomear um diretório, usamos o comando mv. Precisamos fornecer o nome atual do diretório e o novo nome.

 mv old-work archive-2 

Renomeando um diretório com mv

Se o diretório que você deseja renomear não estiver em seu diretório atual, forneça o caminho e o nome do diretório.

 mv ~/htg/old-work ~/htg/archive-2
 ls 

Renomeando um diretório em um diretório diferente com mv especificando o caminho na linha de comando

Usando o navegador de arquivos

Os navegadores de arquivos podem renomear diretórios. O pressionamento de tecla no aplicativo GNOME Files é F2. Destacar um diretório e tocar na tecla F2 abre a caixa de diálogo “Renomear pasta”.

Usando o navegador fie para renomear um diretório

Propaganda

Digite o novo nome e clique no botão verde “Renomear”.

Fornecendo o novo nome do diretório no navegador de arquivos

O diretório é renomeado para você.

O diretório renomeado na janela do navegador de arquivos

É simples assim.

O comando renomear

Se suas necessidades forem mais complicadas do que a simples renomeação de um diretório, talvez seja necessário usar o comando rename . Isso permite que você use expressões Perl para renomear arquivos e diretórios. Ele fornece uma maneira totalmente mais poderosa e flexível de renomear diretórios.

Vamos falar sobre o comando rename baseado em Perl. Existe outro comando mais antigo chamado rename que faz parte dos utilitários principais do Linux. Você provavelmente precisará instalar o comando Perl rename que queremos usar.

Para evitar conflitos de nome com o comando rename existente, o comando Perl rename é chamado de prename no Fedora e perl-rename no Manjaro. No Ubuntu, os comandos rename e prename são ambos links simbólicos que resolvem para um binário chamado file-rename .

Então, no Manjaro o comando você precisará usar perl-rename , e no Fedora é prename . No Ubuntu, você pode usar rename ou prename .

Para instalar o Perl renomear, no Ubuntu você precisa digitar:

 sudo apt install renomear 

Instalando renomear no Ubuntu

No Fedora, o comando é:

 sudo dnf install prename 

Instalando o prenome no Fedora

No Manjaro o pacote é chamado perl-rename .

 sudo pacman -Sy perl-rename 

Instalando perl-rename no Manjaro

Propaganda

Certifique-se de usar o comando apropriado para sua distribuição se quiser trabalhar com os exemplos.

Primeiros Passos Com renomear

O comando rename pega expressões regulares Perl e as aplica a um arquivo ou diretório, ou grupo de arquivos ou diretórios.

Em nosso diretório, temos uma coleção de outros diretórios.

 ls 

Uma coleção de diretórios em uma mistura de maiúsculas, minúsculas e mistas

Seus nomes são uma mistura de letras minúsculas, maiúsculas e maiúsculas. Podemos convertê-los todos para minúsculas com uma expressão adequada.

 renomear 'y/AZ/az/' *
 ls 

Convertendo diretórios para nomes em minúsculas

Todos os diretórios estão agora em letras minúsculas, sejam elas totalmente maiúsculas anteriormente, ou continham a estranha letra maiúscula.

Toda a magia está contida na expressão. A expressão é colocada entre aspas simples “ ' “. Isto é o que todo o comando significa.

  • y : Isso significa procurar qualquer caractere no primeiro intervalo de caracteres e substituí-lo pelo caractere correspondente do segundo intervalo de caracteres.
  • /AZ/az/ : O primeiro intervalo é todas as letras de “A” a “Z”, e o segundo intervalo é todos os caracteres de “a” a “z”.
  • * : O curinga asterisco significa aplicar isso a todos os diretórios.
Propaganda

Em outras palavras, o comando é lido como “para todos os diretórios, troque quaisquer letras maiúsculas pela letra minúscula equivalente”.

Obviamente, você pode renomear um único diretório com rename , embora pareça um exagero. Você será mais rápido usando mv .

 renomear 's/gamma/epsilon-2/' *
 ls 

renomeando um único diretório com renomear

O “s” nesta expressão significa substituto. Ele verifica cada diretório para ver se seu nome é “gamma”. Se for, ele o substitui por “epsilon-2”. Esteja ciente, porém, de que isso também corresponderia a um diretório chamado “gamma-zeta”, por exemplo, renomeando-o para “epsilon-2-zeta”.

Podemos evitar isso adicionando o início da string “ ^ ” e o final da string “ $metacaracteres à primeira cláusula da expressão.

 ls
 renomear 's/^gamma$/epsilon-2/' *
 ls 

Limitando uma ação de renomeação apenas para nomes de diretórios inteiros

Isso deixa o diretório “epsilon-2” intocado.

Usando renomear com outros comandos

Podemos usar outros comandos para localizar os diretórios nos quais queremos rename . Se tivermos um conjunto de diretórios aninhados e quisermos renomear qualquer um que termine em “-old” para que termine em “-archive”, podemos fazer isso usando find e xargs .

Como usar o comando xargs no Linux
RELACIONADO Como usar o comando xargs no Linux

Precisamos usar xargs porque rename não aceita entrada canalizada. O comando xargs supera esse problema aceitando a entrada canalizada e adicionando à linha de comando de outro comando como um parâmetro de linha de comando.

Nosso comando fica assim:

 achar . -depth -type d -name "*-old" | xargs -r renomear "s/old$/archive/"
  • . : Dizemos ao find para começar a procurar no diretório atual. Este poderia ser qualquer caminho, é claro.
  • -profundidade : Use uma pesquisa em profundidade. Isso significa que o conteúdo dos subdiretórios aninhados mais profundos é processado antes dos mais altos.
  • -type d : Procura diretórios, não arquivos.
  • -name “*-old” : A pista de pesquisa. Estamos procurando diretórios com nomes que terminam em “-old”.
  • | : Estamos canalizando a saída de find para o comando xargs .
  • xargs -r : O -r (sem execução se estiver vazio) significa não executar o comando se não houver diretórios correspondentes.
  • rename “s/old$/archive/” : O comando de rename a ser executado.

Nossa árvore de diretórios fica assim antes do comando.

A árvore de diretórios antes do nosso comando de renomeação

Executamos nosso comando:

Nosso comando de renomeação usando find, xargs e rename

Propaganda

E podemos ver que todos os diretórios correspondentes, incluindo os aninhados, foram renomeados.

A árvore de diretórios após o comando de renomeação

Cavalos para cursos

Renomear um diretório não precisa de nada mais do que mv . Se preferir aplicativos GUI, você pode usar seu navegador de arquivos. Se você tiver muitos diretórios para renomear, e especialmente se eles estiverem espalhados por uma árvore de diretórios, você precisará da flexibilidade de rename .

RELACIONADO: Como gerenciar arquivos do terminal Linux: 11 comandos que você precisa saber