Android

Hernoem opdracht in linux (hernoem meerdere bestanden)

Change User Name and Host Name in Linux Ubuntu Terminal | Ubuntu

Change User Name and Host Name in Linux Ubuntu Terminal | Ubuntu

Inhoudsopgave:

Anonim

Het hernoemen van meerdere bestanden en mappen met het mv commando kan een moeizaam proces zijn, omdat het complexe opdrachten met pijpen, lussen, enzovoort moet schrijven.

Dit is waar het commando rename pas komt. Het hernoemt de gegeven bestanden door de zoekuitdrukking in hun naam te vervangen door de opgegeven vervanging.

In deze zelfstudie leggen we uit hoe u de opdracht rename gebruikt om bestanden in batch te hernoemen.

Naam rename

Er zijn twee versies van de opdracht rename met verschillende syntaxis en functies. We zullen de Perl-versie van de opdracht rename gebruiken.

Als deze versie niet op uw systeem is geïnstalleerd, gebruikt u de pakketbeheerder van uw Linux-distributie om deze te installeren:

  • Ubuntu en Debian

    sudo apt update sudo apt install rename

    CentOS en Fedora

    sudo yum install prename

    Arch Linux

    yay perl-rename

rename

Hierna volgt de algemene syntaxis voor de opdracht rename :

rename perlexpr files

Het commando rename is eigenlijk een Perl-script. Het zal de gegeven files hernoemen volgens de opgegeven perlexpr reguliere expressie. U kunt hier lezen over reguliere expressies van Perl.

Met de volgende opdracht wordt bijvoorbeeld de extensie van alle .css bestanden .scss in .scss :

rename 's/.css/.scss/' *.css

Laten we de opdracht nader toelichten:

  • s/search_pattern/replacement/ - De substitutie-operator. .css - Het zoekpatroon. Het is het eerste argument in de substitutieoperator. Het commando rename zal naar dit patroon zoeken in de gegeven bestandsnaam en indien gevonden zal het dit vervangen door het vervangingsargument. .scss - De vervanging. Het tweede argument in de substitutieoperator. *.css - Alle bestanden met de extensie ".css". Wildcard ( * ) is een symbool dat wordt gebruikt om nul, een of meer tekens weer te geven.

Voordat u de eigenlijke opdracht uitvoert en de bestanden en mappen een nieuwe naam geeft, is het altijd een goed idee om de optie -n gebruiken die een "dry run" uitvoert en u laat zien welke bestanden worden hernoemd:

rename -n 's/.css/.scss/' *.css

De uitvoer ziet er ongeveer zo uit:

rename(file-0.css, file-0.scss) rename(file-1.css, file-1.scss) rename(file-2.css, file-2.scss) rename(file-3.css, file-3.scss) rename(file-4.css, file-4.scss)

Standaard overschrijft de opdracht rename de bestaande bestanden niet. Gebruik de optie -f die de rename van de rename om de bestaande bestanden te overschrijven:

rename -f 's/.css/.scss/' *.css

rename -v 's/.css/.scss/' *.css

file-0.css renamed as file-0.scss file-1.css renamed as file-1.scss file-2.css renamed as file-2.scss file-3.css renamed as file-3.scss file-4.css renamed as file-4.scss

rename

rename 's/\.jpe?g$/.jpg/i' *

Conclusie

Met rename opdracht rename kunt u meerdere bestanden tegelijk hernoemen, met behulp van Perl reguliere expressies.

hernoem terminal