Android

Hoe bestanden en mappen in Linux te hernoemen

Permissies toekennen op bestanden en mappen in Linux

Permissies toekennen op bestanden en mappen in Linux

Inhoudsopgave:

Anonim

Het hernoemen van bestanden en mappen is een van de meest basistaken die u vaak moet uitvoeren op een Linux-systeem.

Het hernoemen van een enkel bestand is eenvoudig, maar het hernoemen van meerdere bestanden tegelijk kan een uitdaging zijn, vooral voor gebruikers die nieuw zijn bij Linux. U kunt bestanden hernoemen met behulp van een GUI-bestandsbeheerder of via de opdrachtregelterminal.

In deze zelfstudie laten we u zien hoe u de opdrachten mv en rename gebruikt om bestanden en mappen te hernoemen.

Bestanden hernoemen met mv Command

De opdracht mv (kort van verplaatsen) wordt gebruikt om bestanden te hernoemen of van de ene locatie naar de andere te verplaatsen. De syntaxis voor het mv commando is als volgt:

mv source destination

De source kan een of meer bestanden of mappen zijn en de destination kan een enkel bestand of map zijn.

  • Als u meerdere bestanden als source opgeeft, moet de destination een map zijn. In dit geval worden de source naar de destination verplaatst. Als u een enkel bestand als source opgeeft en het destination een bestaande map is, wordt het bestand naar de opgegeven map verplaatst. Om een ​​bestand een andere naam te geven, moet u één bestand als source en één bestand als doeldoel.

Als u bijvoorbeeld het bestand file1.txt wilt hernoemen als file2.txt u als file2.txt :

mv file1.txt file2.txt

Meerdere bestanden hernoemen met mv Command

De opdracht mv kan slechts één bestand tegelijk hernoemen, maar het kan worden gebruikt in combinatie met andere opdrachten zoals find of in bash voor of while-lussen om meerdere bestanden te hernoemen.

In het volgende voorbeeld wordt getoond hoe u de Bash for-lus kunt gebruiken om alle .html bestanden in de huidige map te hernoemen door de .html extensie te wijzigen in .php .

for f in *.html; do mv -- "$f" "${f%.html}.php" done

Laten we de code regel voor regel analyseren:

  • De eerste regel maakt een for-lus en doorzoekt een lijst met alle bestanden met .html . De tweede regel is van toepassing op elk item van de lijst en verplaatst het bestand naar een nieuwe waarbij .html vervangen door .php . Het deel ${file%.html} gebruikt de uitbreiding van de shell-parameter om het .html deel uit de bestandsnaam te verwijderen. .html geeft het einde van het lussegment aan.

We kunnen ook de opdracht mv gebruiken in combinatie met find om hetzelfde te bereiken als hierboven.

find. -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' ;

De opdracht find geeft alle bestanden die eindigen op .html in de huidige map één voor één door aan de mv opdracht met de schakeloptie -exec . De tekenreeks {} is de naam van het bestand dat momenteel wordt verwerkt.

Zoals u in de bovenstaande voorbeelden kunt zien, is het hernoemen van meerdere bestanden met de opdracht mv geen eenvoudige taak, omdat het een goede kennis van Bash-scripting vereist.

Bestanden hernoemen met opdracht hernoemen

De opdracht rename wordt gebruikt om meerdere bestanden te hernoemen. Dit commando is geavanceerder dan mv omdat het enige basiskennis van reguliere expressies vereist.

Er zijn twee versies van de opdracht rename met verschillende syntaxis. In deze zelfstudie gebruiken we de perl-versie van de opdracht rename . Als u deze versie niet op uw systeem hebt geïnstalleerd, kunt u deze eenvoudig installeren met behulp van de pakketbeheerder van uw distributie.

  • Naam wijzigen op Ubuntu en Debian

    sudo apt install rename

    Installeer hernoemen op CentOS en Fedora

    sudo yum install prename

    Hernoem installeren op Arch Linux

    yay perl-rename ## or yaourt -S perl-rename

De syntaxis voor de opdracht rename is als volgt:

rename perlexpr files

De opdracht hernoemen hernoemt alle files volgens de opgegeven reguliere expressie van perlexpr . U kunt hier perl reguliere expressies gebruiken.

Met de volgende opdracht worden bijvoorbeeld alle bestanden met de extensie .html gewijzigd in .php :

rename 's/.html/.php/' *.html

U kunt het argument -n gebruiken om namen af ​​te drukken van bestanden die moeten worden hernoemd, zonder ze te hernoemen.

rename -n 's/.html/.php/' *.html

De uitvoer ziet er ongeveer zo uit:

rename(file-90.html, file-90.php) rename(file-91.html, file-91.php) rename(file-92.html, file-92.php) rename(file-93.html, file-93.php) rename(file-94.html, file-94.php)

Standaard zal de opdracht hernoemen bestaande bestanden niet overschrijven. Geef het argument -f door zodat bestaande bestanden kunnen worden overschreven.

rename -f 's/.html/.php/' *.html

Hieronder volgen enkele veelvoorkomende voorbeelden van het gebruik van de opdracht hernoemen:

  • Vervang spaties in bestandsnamen door onderstrepingstekens

    rename 'y/ /_/' *

    Converteer bestandsnamen naar kleine letters

    rename 'y/AZ/az/' *

    Converteer bestandsnamen naar hoofdletters

    rename 'y/az/AZ/' *

Conclusie

U zou nu een goed begrip moeten hebben van het gebruik van de opdrachten mv en rename om bestanden te hernoemen. Natuurlijk zijn er andere opdrachten om bestanden in Linux te hernoemen, zoals mmv . Nieuwe Linux-gebruikers die geïntimideerd zijn door de opdrachtregel kunnen GUI-tools voor het hernoemen van batches gebruiken, zoals de Métamorphose.

hernoem mv-terminal