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 sudo
para 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 mv
comando. É parte integrante de todas as distribuições Linux, portanto, não há nada para instalar.
No mv
momento 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-2
ls
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 rename
o 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 rename
que queremos usar.
Para evitar conflitos de nomenclatura com um rename
comando existente, o comando Perl rename
é invocado prename
no Fedora e no perl-rename
Manjaro. No Ubuntu, ambos os comandos rename
e prename
sã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 rename
pega 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.
ls
rename '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 rename
trabalhar. 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 find
and xargs
.
Precisamos usar xargs
porque rename
não aceita entrada canalizada. O comando xargs
supera 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
xargs
o 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/”:
rename
comando 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