Como renomear um diretório no Linux

Laptop Linux mostrando um prompt do bash

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 vários, veja como fazer isso.

Seus dados estão seguros

Renomear diretórios é algo que todos precisamos fazer de vez em quando.

Podemos criar um diretório e escrever seu nome incorretamente, e queremos corrigi-lo. Muitas vezes, 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 compactado e criado uma árvore de diretórios com os nomes dos diretórios em letras maiúsculas e gostaria que eles estivessem em letras minúsculas.

Seja qual for a razão. renomear um diretório não afeta 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 alterados.

Não renomeie os diretórios do sistema . Alterar o caminho para os arquivos e comandos do sistema terá um efeito prejudicial no funcionamento do seu computador, para dizer o mínimo. Se você precisar usar

 sudo 

para renomear um diretório — a menos que você realmente saiba o que está fazendo — é provável que você não deva renomeá-lo.

Usando o comando mv

Nos casos mais simples, tudo o que realmente precisamos é do mvcomando. Esta é parte integrante de toda distribuição Linux, portanto não há nada para instalar.

O mvcomando tem mais de 50 anos no momento em que este artigo foi escrito. 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.

Recomendado:  Como trabalhar com arquivos do Microsoft Office no Google Drive

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 atribuir um novo nome a ele, você renomeará o arquivo. E podemos fazer o mesmo com diretórios.

Existem dois subdiretórios neste diretório.

eu

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 arquivo de trabalho antigo-2

Renomeando um diretório com mv

Se o diretório que você deseja renomear não estiver no diretório atual, forneça o caminho e também o nome do diretório.

mv ~/htg/trabalho antigo ~/htg/archive-2

eu

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 são capazes de 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

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 campo

É 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 renamecomando . Isso permite usar expressões Perl para renomear arquivos e diretórios. Ele fornece uma maneira totalmente mais poderosa e flexível de renomear diretórios.

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

Para evitar conflitos de nome com o renamecomando existente, o renamecomando Perl é chamado prenameno Fedora e perl-renameno Manjaro. No Ubuntu, os comandos renamee prenamesão links simbólicos que resolvem para um binário chamado file-rename.

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

Para instalar a renomeação Perl, no Ubuntu você precisa digitar:

Recomendado:  Ei, Spotify, os podcasts estão arruinando a experiência musical

sudo apt instalar renomear

Instalando renomear no Ubuntu

No Fedora, o comando é:

sudo dnf instalar pré-nome

Instalando o pré-nome no Fedora

No Manjaro o pacote é chamado perl-rename.

sudo pacman -Sy perl-renomear

Instalando perl-rename no Manjaro

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

Primeiros passos com renomear

O renamecomando 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.

eu

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

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

renomear 'y/AZ/az/' *

eu

Convertendo diretórios em nomes minúsculos

Todos os diretórios agora estão em letras minúsculas, quer estivessem totalmente em maiúsculas anteriormente ou contivessem letras maiúsculas estranhas.

Toda a magia está contida na expressão. A expressão é colocada entre aspas simples ” '“. Isso é 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 são todas as letras de “A” a “Z” e o segundo intervalo são todos os caracteres de “a” a “z”.
  • * : O curinga asterisco significa aplicar isso a todos os diretórios.

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/épsilon-2/' *

eu

renomeando um único diretório com renomear

O “s” nesta expressão significa substituto. Ele verifica cada diretório para ver se seu nome é “gama”. Se for, substitui-o por “épsilon-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”.

Recomendado:  Minecraft 1.20 adicionará este novo mob

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

eu

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

eu

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

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

Usando renomear com outros comandos

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

Precisamos usar xargsporque renamenão aceita entrada canalizada . O xargscomando supera esse problema aceitando a entrada canalizada e adicionando outro comando à linha de comando como um parâmetro de linha de comando.

Nosso comando fica assim:

encontrar . -profundidade -type d -name "*-antigo" | xargs -r renomear "s/old$/archive/"

  • . : Dizemos ao find para começar a pesquisar 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 subdiretórios superiores.
  • -type d : pesquise 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 xargscomando.
  • xargs -r : O -r(não executar se vazio) significa não executar o comando se não houver diretórios correspondentes.
  • rename “s/old$/archive/” : O renamecomando 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

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 além de 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 do rename.