Como renomear um diretório no Linux

Como renomear um diretório no Linux

Renomear um diretório no Linux é fácil e há muitas maneiras de fazê-lo. Veja como fazer isso, desde renomear um diretório até pesquisar e renomear muitos.

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. Muitas vezes, a finalidade de um diretório muda com o tempo ou durante a vida de um projeto, e você deseja alterar o nome para refletir seu novo uso. Você pode ter descompactado um arquivo e ele criou uma árvore de diretórios com nomes de diretórios em letras maiúsculas e você quer que eles fiquem em letras minúsculas.

Independente da causa. renomear um diretório não faz nada com os dados que ele contém. Ele altera o caminho para esses dados, mas os arquivos e diretórios dentro do diretório renomeado não são afetados.

Não renomeie os diretórios do sistema. Alterar o caminho para arquivos e comandos do sistema, para dizer o mínimo, afetará negativamente a operação do seu computador. Se você precisar usar sudopara renomear um diretório – a menos que realmente saiba o que está fazendo – é provável que não o renomeie.

Usando o comando mv

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

No mvmomento da redação deste artigo, a equipe tem mais de 50 anos. Ele remonta aos primórdios do Unix, quando comandos curtos e enigmáticos estavam em voga, provavelmente para reduzir o número de caracteres que precisavam viajar 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ê renomeará o arquivo. E podemos fazer o mesmo com diretórios.

Este diretório tem dois subdiretórios.

ls

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

mv old-work archive-2

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-2ls

Usando o navegador de arquivos

Os navegadores de arquivos podem renomear diretórios. A chave no aplicativo GNOME Files é F2. Selecionar um diretório e pressionar F2 abre a caixa de diálogo Renomear pasta.

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

O diretório foi renomeado para você.

É tão simples.

Comando Renomear

Se suas necessidades forem mais complexas do que simplesmente renomear um diretório, talvez seja necessário usar renameo comando. Isso permite que você use expressões Perl para renomear arquivos e diretórios. Ele fornece uma maneira mais poderosa e flexível de renomear diretórios.

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

Para evitar conflitos de nomenclatura com um renamecomando existente, o comando Perl renameé invocado prenameno Fedora e no perl-renameManjaro. No Ubuntu, ambos os comandos renamee prenamesão links simbólicos que resolvem para um arquivo binário chamado file-rename.

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

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

sudo apt install rename

No Fedora, o comando é:

sudo dnf install prename

No Manjaro, o pacote é chamado perl-rename.

sudo pacman -Sy perl-rename

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

Primeiros passos com a renomeação

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

Nosso catálogo tem uma coleção de outros catálogos.

ls

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

Todos os diretórios estão agora em letras minúsculas, quer fossem totalmente maiúsculas antes ou continham uma letra maiúscula ímpar.

Toda a magia está na expressão. A expressão é colocada entre aspas simples ” '“. Isso é o que toda a equipe quer dizer.

  • y: 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 são todas as letras de “A” a “Z”, e o segundo intervalo são todos os caracteres de “a” a “z”.
  • *: Um curinga de asterisco significa que isso se aplica a todos os diretórios.

Em outras palavras, o comando lê “para todos os diretórios, substitua quaisquer letras maiúsculas por suas letras minúsculas equivalentes”.

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

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

O “S” nesta expressão significa substituição. Ele verifica cada diretório para ver se seu nome é “gamma”. Nesse caso, ele o substitui por “epsilon-2”. Esteja ciente, no entanto, que isso também corresponderia a um diretório chamado “gamma-zeta”, por exemplo, renomeando-o para “epsilon-2-zeta”.

Isso pode ser evitado adicionando os metacaracteres de início de linha ” ^” e fim de linha ” $” à primeira cláusula da expressão.

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

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

Usando renomear com outros comandos

Podemos usar outros comandos para encontrar os diretórios nos quais queremos renametrabalhar. Se tivermos um conjunto de diretórios aninhados e quisermos renomear todos os que terminam com “-old” para terminar com “-archive”, podemos fazer isso usando findand xargs.

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

Nossa equipe está assim:

find. -depth -type d -name "*-old"| xargs -r rename "s/old$/archive/"

  • .: Dizemos ao find para iniciar a busca no diretório atual. Claro, pode ser de qualquer maneira.
  • -profundidade: usa a pesquisa em profundidade. Isso significa que o conteúdo de subdiretórios aninhados mais profundos é processado antes dos mais altos.
  • -type d: procura diretórios, não arquivos.
  • -name “*-old”: Dica de pesquisa. Estamos procurando diretórios com nomes que terminam em “-old”.
  • |: Nós canalizamos a saída do comando find para xargso comando.
  • xargs -r: -r(não executar se estiver vazio) significa não executar o comando se não houver diretórios adequados.
  • renomear “s/old$/archive/”: renamecomando a ser executado.

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

Vamos executar nosso comando:

E podemos ver que todos os diretórios relevantes, incluindo subdiretórios, foram renomeados.

Você não precisa de nada além de mv. Se preferir aplicativos GUI, você pode usar o navegador de arquivos. Se você precisar renomear muitos diretórios, especialmente se eles estiverem espalhados pela árvore de diretórios, você precisará de flexibilidade rename.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *