Como renomear um diretório no Linux

0
18


fatmawati achmad zaenuri / Shutterstock.com

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

Seus dados estão seguros

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

Poderíamos criar um diretório e escrever seu nome errado, e queremos corrigir isso. Frequentemente, a finalidade de um diretório muda com o tempo ou durante a vida de um projeto, e você deseja ajustar o nome para refletir seu novo uso. Talvez você tenha descompactado um arquivo e criado uma árvore de diretórios com os nomes dos diretórios em maiúsculas e gostaria que eles estivessem em minúsculas.

Seja qual for a razão. renomear um diretório não faz nada com os dados contidos nele. mudar o caminho a esses dados, mas os arquivos e diretórios dentro do diretório renomeado permanecem intocados.

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

Usando o comando mv

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

a mv O comando tem mais de 50 anos no momento da redação deste artigo. Isso remonta ao início do Unix, quando comandos curtos e enigmáticos estavam na moda, provavelmente para reduzir o número de caracteres que precisavam ser passados ​​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ê terá renomeado o arquivo. E podemos fazer o mesmo com diretórios.

Existem dois subdiretórios neste diretório.

ls

Listagem de 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

Renomeie 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

Renomeie um diretório para um diretório diferente com mv especificando o caminho na linha de comando

Usando o Explorador de Arquivos

Os exploradores de arquivos podem renomear diretórios. A combinação de teclas 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”.

Forneça o novo nome do diretório no explorador de arquivos

O diretório é renomeado para você.

O diretório renomeado na janela do explorador de arquivos

É tão simples como isso.

O comando de renomeação

Se suas necessidades forem mais complicadas do que simplesmente renomear um diretório, talvez seja necessário usar o rename domínio. Isso permite que você use expressões Perl para renomear arquivos e diretórios. Fornece uma maneira mais poderosa e flexível de renomear diretórios.

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

Para evitar conflitos de nomes com rename comando, o perl rename chama-se comando prename no fedora e perl-rename em Manjaro. No Ubuntu, o rename S prename Os comandos são links simbólicos que resolvem para um binário chamado file-rename.

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

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

sudo apt install rename

Instalação de 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

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

Começando a renomear

a rename O comando pega expressões regulares do Perl e as aplica a um arquivo ou diretório, ou a um 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 combinação 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.

rename 'y/A-Z/a-z/' *
ls

Convertendo diretórios para nomes em minúsculas

Todos os diretórios agora estão em letras minúsculas, se antes eram todos em maiúsculas ou continham alguma letra maiúscula.

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

  • S: Isso significa procurar qualquer caractere no primeiro intervalo de caracteres e substituí-lo pelo caractere correspondente no 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.

Em outras palavras, o comando lê como “para todos os diretórios, altere as letras maiúsculas para a letra minúscula equivalente”.

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

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

renomear um único diretório com renomear

O “s” nesta expressão significa substituto. Ele verifica cada diretório para ver se seu nome é “gamma”. Nesse caso, ele o substitui por “epsilon-2”. No entanto, observe 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 fim da cadeia”$metacaracteres para a primeira cláusula da expressão.

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

Limitar uma ação de renomeação apenas para nomes de diretório totalmente qualificados

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

Usando renomear com outros comandos

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

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

Nosso comando fica assim:

find . -depth -type d -name "*-old" | xargs -r rename "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 profunda. Isso significa que o conteúdo de subdiretórios aninhados mais profundos é processado antes dos mais altos.
  • tipo d: Diretórios de pesquisa, não arquivos.
  • -name “* -antigo”: A faixa de pesquisa. Estamos procurando diretórios com nomes que terminam em “-old”.
  • |: Estamos canalizando a saída de find para xargs domínio.
  • xargs -r: O -r (não execute se estiver vazio) significa não executar o comando se não houver diretórios correspondentes.
  • renomear “s/antigo $/arquivo/”: O rename comando para executar.

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

A árvore de diretórios antes do nosso comando renomear

Executamos nosso comando:

Nosso comando rename usando find, xargs e rename

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

A árvore de diretórios após o comando rename

cavalos de corrida

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 em uma árvore de diretórios, você precisará da flexibilidade de rename.

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