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.
Índice
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 mv
comando. Esta é parte integrante de toda distribuição Linux, portanto não há nada para instalar.
O mv
comando 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.
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
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
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
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”.
Digite o novo nome e clique no botão verde “Renomear”.
O diretório é renomeado para você.
É 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 rename
comando . 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 rename
comando baseado em Perl. Existe outro comando mais antigo chamado rename
que faz parte dos utilitários principais do Linux. Você provavelmente precisará instalar o rename
comando Perl que queremos usar.
Para evitar conflitos de nome com o rename
comando existente, o rename
comando Perl é chamado prename
no Fedora e perl-rename
no Manjaro. No Ubuntu, os comandos rename
e prename
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-rename
, e no Fedora é o prename
. No Ubuntu, você pode usar rename
ou prename
.
Para instalar a renomeação Perl, no Ubuntu você precisa digitar:
sudo apt instalar renomear
No Fedora, o comando é:
sudo dnf instalar pré-nome
No Manjaro o pacote é chamado perl-rename
.
sudo pacman -Sy perl-renomear
Certifique-se de usar o comando apropriado para sua distribuição se quiser trabalhar com os exemplos.
Primeiros passos com renomear
O rename
comando 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
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
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
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”.
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
Isso deixa o diretório “epsilon-2” intacto.
Usando renomear com outros comandos
Podemos usar outros comandos para localizar os diretórios rename
nos 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 find
e xargs
.
Precisamos usar xargs
porque rename
não aceita entrada canalizada . O xargs
comando 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
xargs
comando. - 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
rename
comando a ser executado.
Nossa árvore de diretórios fica assim antes do comando.
Executamos nosso comando:
E podemos ver que todos os diretórios correspondentes, incluindo os aninhados, foram renomeados.
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
.