Converteer hoofdletters naar kleine letters van bestandsnamen

Probeer find (Linux-opdracht)

In veel gevallen heeft het de voorkeur om de bestands- en mapnamen in kleine letters​ Een voor een hernoemen is erg hard werken. Vooral als er honderden of duizenden bestanden zijn, wordt de klus gecompliceerder en moeilijker om met de hand uit te voeren. Maar dat betekent niet dat het onmogelijk is of dat er geen methoden zijn om het volledig snel en geautomatiseerd te doen.

Maar afgezien van de pure esthetiek of de voorkeuren van elke gebruiker, gaat het soms om technische problemen, aangezien sommige apps kunnen niet werken met bepaalde namen in hoofdletters en ze moeten worden bekeerd. Wanneer je een van deze apps tegenkomt, verzamel je misschien al heel lang bestanden met allerlei soorten namen, en wordt het moeilijk om terug te gaan. Maar maak je geen zorgen, het heeft een eenvoudige oplossing, zoals ik je in deze tutorial laat zien ...

Zet hoofdletters om in kleine letters

Commando om over te schakelen van hoofdletters naar kleine letters

Het eerste dat je moet weten, is dat de volgende opdracht converteert alle hoofdletters naar kleine letters, ook als er submappen in die map zijn. Dus als je niet wilt dat ze allemaal in kleine letters zijn, doe het dan in de specifieke directory of het zal alles voor je converteren. Dit lijkt me belangrijk zodat je later geen problemen meer hebt en namen die je niet naar kleine letters wilt converteren, worden geconverteerd.

Aan de andere kant heb je nodig laat het hernoemingsprogramma installeren​ Als je het niet hebt geïnstalleerd, gebruik dan de pakketbeheerder van je distro om het gemakkelijk te installeren. Over het algemeen moet u het echter hebben geïnstalleerd, dus het is niet in alle gevallen nodig om het te installeren. Met deze tool kunt u meerdere namen tegelijkertijd wijzigen, in plaats van de typische mv te gebruiken om de naam een ​​voor een te wijzigen ...

Een ander ding dat u moet weten voordat u aan het werk gaat, is dat als het bij het converteren van hoofdletters naar kleine letters dezelfde naam tegenkomt, het niet zal worden geconverteerd. Je weet al dat Linux dat heeft hoofdlettergevoelig in uw FS, dus het is hoofdlettergevoelig. Dat betekent dat als je een bestand hebt met de naam Hello2 en HELLO2, het systeem ze onderscheidt. Maar natuurlijk ... als ze naar kleine letters gaan, worden ze allebei hallo2 genoemd en dat is niet mogelijk. Daarom genereert het een foutmelding en wordt het niet getransformeerd.

Daarna heb je alles wat je moet weten en kunnen we beginnen met het omzetten van de namen van hoofdletters naar kleine letters. De generiek commando Het zou het volgende zijn, en u kunt het wijzigen zodat het naar de gewenste directory verwijst:

<br data-mce-bogus="1">

<em>find &lt;nombre_directorio&gt; -depth | xargs -n 1 rename -v 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;</em>

je moet vervangen door de naam van de directory of het pad van de directory die u in kleine letters wilt maken. Bijvoorbeeld, zoals het voorbeeld dat ik je laat zien in de afbeelding die Test is, maar het kan ook elke andere zijn. Voor nieuwkomers, zeg dat ik met pad het pad bedoel, wanneer het niet direct in de map staat waarin u zich momenteel bevindt. Als u zich bijvoorbeeld in ~ / bevindt maar wilt handelen op / home / user / Downloads.

Converteer het naar script

Om het hoofdletters en kleine letters, kunt u een script maken laat het het voor u doen en u hoeft de bovenstaande opdracht niet elke keer in te voeren als u een conversie nodig heeft. Dit is erg handig voor degenen die constant namen doorgeven. Als u het in een van de paden van de omgevingsvariabele $ PATH plaatst, kunt u het ook uitvoeren door de naam ervan aan te roepen, zonder dat u het in dezelfde map hoeft te hebben als waar u aan het werk bent of het volledige pad moet specificeren ...

De stappen die u moet volgen om het conversiescript te maken zijn:

  • Het eerste is ga naar / bin directory om het script daar op te nemen en het dus te gebruiken zoals elk ander commando, door simpelweg de naam aan te roepen vanaf de terminal.
<br data-mce-bogus="1">

cd ~/bin<br data-mce-bogus="1">

  • Dan creëer met nano, of met uw favoriete teksteditor, het bestand met het script en noem het wat u maar wilt. Ik ga het mayutominu noemen:
sudo nano mayutominu.sh

  • Binnen nano moet je de volgende tekst plakken voor het code van dit script van bash:
</pre><pre>#!/bin/bash
if [ -z $1 ];then
echo "Uso :$(basename $0) parent-directory"
exit 1
fi

all="$(find $1 -depth)"

for name in ${all}; do
new_name="$(dirname "${name}")/$(basename "${name}" | tr '[A-Z]' '[a-z]')"
if [ "${name}" != "${new_name}" ]; then
[ ! -e "${new_name}" ] &amp;&amp; mv -T "${name}" "${new_name}"; echo "${name} was renamed to ${new_name}" || echo "${name} wasn't renamed!"
fi

done
exit 0</pre><pre>
  • nu het bestand opslaan met de toetsencombinatie Ctrl + O en sluit af met Ctrl + X. Je hebt je mayutominu.sh-bestand al gemaakt met het script, het volgende is toestemming geven van uitvoering:
sudo chmod +x mayutominu.sh
  • Eindelijk heb je het klaar voor gebruik​ Hoe is het gedaan? Als u doorgaat met hetzelfde voorbeeld uit de vorige sectie, kunt u het volgende doen als u de namen van de testmap wilt wijzigen van hoofdletters in kleine letters:
mayutominu Prueba
  • Weet je, als je het volledig pad, of pad, u kunt dit ook doen als de directory niet op de huidige positie staat. Bijvoorbeeld:
mayutominu /home/usuario/Descargas

Ik hoop dat het je heeft geholpen, je weet dat eventuele vragen of suggesties, u kunt uw opmerkingen achterlaten...


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: AB Internet Networks 2008 SL
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   yo zei

    In Debian vertelt het me dit:
    -bash: syntaxisfout bij onverwacht token `nieuwe regel

    vind -diepte | xargs -n 2 hernoem -v 's /(.*)\/(((^\/)*)/$ 1 \ / \ L $ 1 /' {} \;