Bestandsextensies van bestanden wijzigen via de opdrachtregel in Mac OS
Inhoudsopgave:
Opdrachtregelgebruikers kunnen het handig vinden om de bestandsextensie van een groep bestanden in een directory te wijzigen en de naam ervan te wijzigen. Stel dat u een batch bestanden heeft met de bestandsextensie ".txt", maar u wilt dat al die bestandsextensies ".py" zijn. Dat is wat we hier gaan demonstreren door te vertrouwen op eenvoudige bash-scripting om een groep bestandsextensies te wijzigen op de opdrachtregel van Mac OS / OS X, maar dit werkt ook in Linux en andere Unix-smaken.
Besef voordat u begint dat dit geen bestandstype verandert, maar alleen de bestandsextensie. Bovendien gebruikt deze walkthrough-benadering opzettelijk de opdrachtregel en is dus gericht op meer gevorderde gebruikers. De Terminal is echter niet de enige manier om dit te doen, en als dit dus te geavanceerd of niet relevant is voor uw gebruikersvaardigheden, onthoud dan dat Mac OS eenvoudige tools biedt om zowel bestanden in batch te hernoemen in Mac OS als bestandsextensies in batch te wijzigen in de Finder ook, die geen van beide de opdrachtregel helemaal vereist. OKÉ? Oké, over naar de opdrachtregelbenadering met een eenvoudig bash-script van één regel.
Trouwens, je moet altijd een kopie en/of back-up maken van de bestanden die je aan het wijzigen bent, vooral als je nieuw bent op de opdrachtregel. Als u dit niet doet, kan dit leiden tot gegevensverlies, de Terminal is meedogenloos voor typefouten of vergissingen, dus sla uw back-ups niet over.
Alle bestandsextensies in een directory wijzigen via de opdrachtregel
Laten we een paar voorbeelden nemen. In het eerste voorbeeld gaan we alle bestanden in de huidige werkmap wijzigen met de extensie ".txt" en in plaats daarvan veranderen in ".py". Ervan uitgaande dat u zich in de map bevindt waar u alle bestanden in de huidige map naar een nieuwe bestandsextensie wilt wijzigen, is hier de syntaxis die u moet gebruiken:
voor bestand in .txt; doe mv $file>"
Let op: dit gebruikt het jokertekenwat betekent dat alles en nog wat in de huidige map die overeenkomt met de bestandsextensie ".txt" zal worden gewijzigd. Let ook op de meerdere instanties van "txt" en de ene instantie van "py", die u beide wilt wijzigen om aan uw vereisten te voldoen.
Het enige wat dit doet, is een eenvoudige lus maken waarin bestanden worden gevonden die overeenkomen met de wildcard en de initiële bestandsextensie, en vervolgens het "mv"-commando uitvoeren om die bestanden te verplaatsen (hernoemen) van de initiële bestandsextensie naar de vervanging. Vrij eenvoudig, toch?
Laten we nog een voorbeeld nemen, laten we zeggen dat we een verzameling afbeeldingsbestanden in de huidige map hebben met bestandsnamen zoals "blahblah.jpg.JPEG", maar we willen eigenlijk dat ze allemaal dezelfde bestandsnaam hebben van het minder overbodige en gemakkelijker te lezen "blazblah.jpeg". In dat geval ziet de syntaxis er als volgt uit:
"voor bestand in .jpg.JPEG; doe mv $file ${file%.jpg.JPEG}.jpeg; gedaan"
De opdrachtregelbenadering voor het wijzigen van bestandsextensies is vrij snel en de bestandsextensies zullen snel worden gewijzigd, zonder waarschuwingsvensters of bevestigingen.
En nogmaals, dit is niet om bestandstypes te converteren of iets anders te veranderen dan de naam van de bestandsextensie.
Weet je een betere manier om via de opdrachtregel een aantal bestandsextensies van bestanden in een map te wijzigen? Wil je gewoon door enkele andere geweldige opdrachtregeltips bladeren (ga hierheen)? Laat ons weten wat je ervan vindt in de comments!