Gebruikershandleiding: Gebruik opdracht hernoemen op Linux
Heb je ooit geprobeerd om de opdracht hernoemen te gebruiken op Linux ? Wil je grip krijgen op de krachtpatser voor het hernoemen van bestanden van de Linux-wereld en zorgen voor mv —en jezelf — een rustpauze. Hernoemen is snel, flexibel en veel eenvoudiger. Hier is een gedetailleerde gids over deze krachtpatser van een commando.
Wat gaat er mis met mv?
Er is niets misgegaan met mv . De opdracht doet het echter goed. Je kunt het ook vinden op alle Linux-distributies, in macOS en in andere Unix-achtige besturingssystemen. Het is echter altijd beschikbaar. Maar je wilt zeker geen schop, maar een bulldozer.
Het commando mv heeft een doel in het leven, en dat is het verplaatsen van bestanden. Het is een veilige bijwerking dat het kan worden gebruikt om een ouder bestand te verplaatsen in het nieuwe bestand, met een nieuwe naam. Het effect is dat het bestand een andere naam krijgt, zodat u krijgt wat u wilt. Maar mv is geen hulpprogramma voor het wijzigen van de naam van bestanden.
Een enkel bestand hernoemen met mv

Als u mv wilt gebruiken om een bestand een andere naam te geven, typ dan mv, space, de bestandsnaam, spatie en de nieuwe naam die u het bestand wilt geven. Druk vervolgens op Enter.
U kunt ook ls gebruiken om te controleren of het bestand hernoemd wordt of niet
mv renameHoe u meerdere bestanden kunt hernoemen met mv
Het wordt ingewikkeld na het hernoemen van meerdere bestanden. perl-rename kan niet omgaan met het hernoemen van verschillende bestanden. Je moet een paar handige Bash-trucs gebruiken. Het is goed als je een commandoregel van gemiddelde kwaliteit kent, maar de moeilijkheid om verschillende bestanden te hernoemen met mv staat alleen voor het gebruiksgemak mv om een enkel bestand te hernoemen.
Dingen escaleren onmiddellijk.
Laten we zeggen dat hier een directory is met veel bestanden erin, van verschillende typen. Sommige bestanden hebben een .prog uitbreiding. We willen die bestanden hernoemen op de opdrachtregel zodat ze een .prg uitbreiding.
Laten we de bestanden eens bekijken.
renameHier is een methode om dit te doen die niet kan leiden tot het schrijven van een echt Bash-scriptbestand.
renameHeeft het gewerkt of niet? Laten we de bestanden controleren en dan verder gaan.
renameDus het werkt prima. Ze zijn allemaal .prg bestanden nu, en er zijn geen .prog bestanden in de directory.
Wat is er gebeurd?
Wat deed het lange commando eigenlijk? Laten we het bekijken.
prenameHet eerste deel begint een lus die elk gaat verwerken .prog bestand in de directory, op zijn beurt.
Een ander deel zegt wat de verwerking zal zijn Doen . Het gebruikt mv om elk bestand naar het nieuwe bestand te verplaatsen. De nieuwe bestandsnaam zal vrij gelijkaardig zijn aan de originele bestandsnaam, behalve het .prog-gedeelte. Ook wordt de extensie .prg gebruikt.
Hier is een gemakkelijke manier
Zeer zeker. Hier is de hernoemen opdracht.

Het maakt geen deel uit van de standaard Linux-distributie, dus u wilt het installeren. Het heeft ook een andere naam in verschillende Linux-families, maar ze werken allemaal op dezelfde manier. Je vervangt gewoon de juiste commandonaam volgens de smaak van Linux die je gebruikt.
In van Debian afgeleide of Ubuntu-distributies installeert u eenvoudig perl-rename soortgelijk:
*.progIn RedHat-afgeleide distributies of Fedora installeer je eenvoudig prename soortgelijk. Onthoud dat de initiële p staat voor Perl.
renameGebruik het volgende commando om het in Manjaro Linux te installeren. Houd er rekening mee dat de opdracht voor het hernoemen bekend staat als s.
.progGebruik hernoemen Command -> Kom, laten we het nog een keer proberen
Hier gebruiken we rename. We doen dit zodat we een set .prog-bestanden hebben.
.prgLaten we de onderstaande opdracht gebruiken om ze te hernoemen. We zullen het ook controleren ls commando of het werkte of niet. Als u rename wilt vervangen met de juiste opdrachtnaam voor Linux als u geen Ubuntu of een van Debian afgeleide Linux kunt gebruiken.
ls lsHet werkt goed, nu zijn het allemaal .prg-bestanden met uitzondering van .prog bestanden die in de directory zijn achtergebleven.
Wat is hier gebeurd?
Laten we het in drie delen bespreken.
In de eerste part, ziet u de commandonaam, rename (of ls of ls, voor de andere distributies).
De derde laatste deel is ^, wat $ verklaart om op alle .prog-bestanden te werken.
De tweede deel legt het werk uit dat we graag aan elke bestandsnaam doen. Het ^ betekent plaatsvervanger. De 1e term (ls) is wat ls zal in elke bestandsnaam zoeken en de 2e term (ls) is waarmee het zal worden vervangen.
vieze eend kodi werkt niet
Het middengedeelte van de opdrachten of de centrale uitdrukking is een Perl ‘reguliere uitdrukking’ en het is wat de s/ bevelen zijn betrouwbaarheid.
Andere delen van een bestandsnaam wijzigen
We hebben tot nu toe bestandsnaamextensies gewijzigd. Laten we andere delen van de bestandsnamen wijzigen.
In de directory bevinden zich veel C-broncodebestanden. Alle bestandsnamen hebben het voorvoegsel slang_. We kunnen dit ook controleren met y/.
a-zHier vervangen we alle gevallen van slang_ door sl_. Het commandoformaat is ons vrij bekend. We wijzigen alleen de zoekterm, de vervangende term en het type bestand.
A-ZHier zoeken we naar .c-bestanden en zoeken we naar slang_. Elke keer dat je slang_ in een bestandsnaam hebt gevonden, wordt het vervangen door sl_.
U kunt het resultaat van de opdracht ook controleren nadat u de opdracht ls hebt herhaald van bovenaf met dezelfde parameters:
a-zEen deel van een bestandsnaam verwijderen
We kunnen ook een deel van een bestandsnaam verwijderen nadat we de zoekterm met niets hebben vervangen.
mv oldfile.txt newfile.txt
We kunnen ook kijken vanaf de ls bevelen dat onze .c bestanden zijn allemaal voorafgegaan door sl_. Laten we dat helemaal laten.
De hernoemen commando volgt hetzelfde formaat als hierboven vermeld. We gaan zoeken naar .c-bestanden. De zoekterm is sl_, maar er is geen vervangende term. Twee backslashes ‘//’ zonder iets ertussen betekenen een lege tekenreeks.
ls *.txtkan elk .c-bestand op zijn beurt verwerken. Het zoekt ook naar sl_ in de bestandsnaam. Als je het hebt gevonden, kun je door niets worden vervangen. Als alternatief wordt de zoekterm verwijderd.
Een ander gebruik van de
ls *.prog -lcommando bevestigt dat het voorvoegsel sl_ is gewist uit elk .c-bestand.
Limit Wijzigt in bepaalde delen van bestandsnamen
Kom, laten we
for f in *.prog; do mv -- '$f' '${f%.prog}.prg' gebruiken om bestanden te bekijken die de tekenreeksparameter in hun bestandsnaam hebben. Dan gebruiken we hernoemen commando om de string te vervangen via stringparameter. We gebruiken ook ls nog een keer om het effect van de hernoemen commando heeft gehad op die bestanden.ls *.pr*
for f in *.prog; do mv -- '$f' '${f%.prog}.prg' sudo apt-get install rename
U ziet dan vier bestanden met hou op in hun bestandsnaam. param.c, param_one.c en param_two.c hebben allemaal hou op bij de begin van hun naam. third_param.c heeft hou op bij de laatste van de naam, net voor de extensie.
U kunt zoeken hernoemen commando voor param overal in de bestandsnaam. U kunt het dan in alle gevallen vervangen door parameter.
Een ander gebruik van ls commando laat ons zien dat wat er precies is gebeurd. Of hou op stond aan het begin of aan het einde van de bestandsnaam. U kunt het ook vervangen door een parameter.
We kunnen de metatekens van Perl gebruiken om het gedrag van de centrale uitdrukking te zuiveren. Metatekens zijn de tekens die reeksen of posities van tekens vertegenwoordigen. Bijvoorbeeld
sudo dnf install prenamebetekent begin van een string, (.) betekent elk enkel teken (behalve een teken voor een nieuwe regel),
sudo pacman -Syu perl-renamebetekent einde van een string.
We gebruiken ook het begin van het metateken van de tekenreeks (
ls *.prog) om onze zoekopdracht te beperken tot het begin van de bestandsnamen.
rename 's/.prog/.prg/' *.prog
ls *.pr*
ls sl*.c
rename 's/slang_/sl_' *.c
De bestanden waarvan we de naam hebben gewijzigd, staan eerder vermeld. We kunnen ook zien dat de stringparameter aan het begin van 3 bestandsnamen staat en aan het einde van een van de bestandsnamen.
Onze hernoemen commando gebruikt het begin van de regel metateken (^) voor de zoekterm parameter. Het legt uit dat u alleen de zoekterm moet overwegen om te vinden als deze aan het begin van de bestandsnaam staat. De parameter voor de zoekreeks wordt vermeden als deze zich ergens anders in de bestandsnaam bevindt.
Als we kijken met
ls sl*.c, kunnen we zien dat de bestandsnaam met parameter op de laatste van de bestandsnaam is niet gewijzigd. Maar de drie bestandsnamen met parameter op de begin van hun namen waarbij de zoekreeks is vervangen door de vervangende termwaarde.
De hernoemen kracht ligt in de kracht van Perl.
Met groeperingen kijken
Dit is het geval waarin u waarschijnlijk bestanden heeft met dezelfde tekenreeksen in hun naam. Ze lijken niet precies op dezelfde tekenreeksen, dus zoek gewoon naar en vervanging kan hier niet werken.
In dit voorbeeld gebruiken we
ls *.c rename 's/sl_//' *.c ls *.com te zien welke bestanden we hebben die beginnen met str. Er zijn er ook twee, string.c en strangle.c. We kunnen beide strings ook hernoemen nadat we een methode hebben gebruikt die bekend staat als een groepering.
De middelste uitdrukking van de hernoemen commando zoekt naar strings binnen bestandsnamen met de tekenreeks stri of stra. Hier worden deze sequenties gevolgd door ng. Als alternatief zoekt onze zoekterm naar string en vreemd. De vervangende term is knal.
ls *param*
rename 's/param/parameter' *.c
ls *param*
Na gebruik van
ls *param*.ceen andere keer bevestigt dat string.c een bang is geworden. c en strangle.c is nu bangle.c.
Gebruik Hernoemen Command met vertalingen
De hernoemen commando voert alle acties uit op bestandsnamen die bekend staan als vertalingen. Hier is een voorbeeld van een vertaling die een reeks bestandsnamen in hoofdletters dwingt.
In de hernoemen commando hieronder vermeld dat we geen
rename 's/^parameter/value/' *.cgebruiken om de middelste uitdrukking te beginnen, gebruiken we
ls *param*.c. Het legt uit dat het commando geen vervanging kan uitvoeren; we voeren een vertaling uit.
De term
ls value*.cis een Perl-uitdrukking. Het betekent dat alle kleine letters in de reeks van a tot z. Maar de term
ls str*.cstaat voor alle hoofdletters in de reeks van A tot Z.
De middelste uitdrukking in dit commando kan worden geparafraseerd alsof een van de kleine letters van a tot z in de bestandsnaam voorkomt. Het vervangt ze met behulp van de overeenkomstige tekens in de volgorde van hoofdletters van A tot Z.
Als je de bestandsnamen van alle .prg-bestanden naar hoofdletters wilt forceren, gebruik je gewoon deze opdracht:
hernoem ‘y / a-z / A-Z /’ * .prg
rename 's/(stri|stra)ng/bang/' *.c
Het commando
ls ban*.claten zien dat alle .prg extensiebestanden zijn nu in hoofdletters. Om precies te zijn, zijn ze dat ook niet .prg bestanden meer. Het zijn .PRG-bestanden. Zorg ervoor dat Linux hoofdlettergevoelig is.
We kunnen dat laatste commando ook omkeren nadat we zijn teruggekeerd naar de positie van de
ls *.PRGen A-Z termen in de middelste uitdrukking.
hernoem ‘y / A-Z / a-z /’ * .PRG
ls * .prg
U kunt Perl niet in vijf minuten leren
Grip krijgen op Perl is een goed bestede tijd. Maar om de tijdbesparende mogelijkheden van het hernoemen commando, je bent helemaal niet van plan om veel Perl-kennis te hebben om grote voordelen op het gebied van macht te oogsten.
Conclusie:
Hier gaat alles over ‘Gebruik hernoemen Command op Linux’. Wat is uw mening hierover? Als je een andere methode of tips met betrekking tot het artikel wilt delen, laat het ons dan hieronder weten. Voor verdere vragen en vragen laat het ons weten in de commentaarsectie hieronder!
Lees ook:


