Deze handleiding zal je laten zien hoe je nieuwe mappen of mappen binnen Linux kunt maken met behulp van de opdrachtregel.
De opdracht die u gebruikt voor het maken van mappen is mkdir. Dit artikel toont je de basismethode voor het maken van mappen in Linux en het behandelen van alle beschikbare switches.
Een nieuwe map maken
De eenvoudigste manier om een nieuwe map aan te maken is als volgt:
mkdir Als u bijvoorbeeld een map onder de thuismap met de naam test wilt maken, opent u een terminalvenster en zorgt u ervoor dat u zich in uw basismap bevindt (gebruik het cd ~ -commando). Nadat u een nieuwe map hebt gemaakt, wilt u mogelijk de rechten zo instellen dat alleen een bepaalde gebruiker toegang heeft tot de map, zodat sommige mensen bestanden in de map kunnen bewerken, maar anderen alleen-lezen hebben. In de laatste sectie heb ik je laten zien hoe je een directory met de naam test kunt maken. Als u de opdracht ls uitvoert, ziet u de machtigingen voor die map: ls -lt De kans is groot dat u iets in deze richting zult hebben: drwxr-xr-x 2 eigenaar groep 4096 9 maart 19:34 test De bits waarin we geïnteresseerd zijn, zijndrwxr-xr-x eigenaaren groep De d vertelt ons dat de test een directory is. De eerste drie tekens na de d zijn de eigenaarsrechten voor de map die wordt opgegeven door de naam van de eigenaar: De volgende drie tekens zijn de groepsmachtigingen voor het bestand dat is opgegeven met de groepsnaam. Opnieuw zijn de opties r, w en x. De - betekent dat er een toestemming ontbreekt. In het bovenstaande voorbeeld kan iedereen die tot de groep behoort de map openen en de bestanden lezen, maar kan deze niet naar de map schrijven. De laatste drie tekens zijn de rechten die alle gebruikers hebben en zoals u in het bovenstaande voorbeeld kunt zien, zijn deze hetzelfde als de groepsrechten. Als u de machtigingen voor een bestand of map wilt wijzigen, gebruikt u dechmodcommando. Met de opdracht chmod kunt u 3 cijfers opgeven die de machtigingen instellen: Om een mix van permissies te krijgen, voeg je de getallen bij elkaar. Om bijvoorbeeld leesrechten te krijgen en uit te voeren, is het nummer dat je nodig hebt 5, om lees- en schrijfrechten te krijgen is het nummer 6 en om te schrijven en machtigingen uit te voeren is het nummer 3. Vergeet niet dat u 3 cijfers moet opgeven als onderdeel van de opdracht chmod. Het eerste nummer is voor de eigenaarsrechten, het tweede nummer voor de groepsrechten en het laatste nummer voor alle anderen. Als u bijvoorbeeld de volledige machtigingen voor de eigenaar wilt krijgen, leest u de machtigingen voor de groep uit en voert u deze uit, en typt u het volgende voor geen andere persoon: chmod 750 test Als u de groepsnaam van een map wilt wijzigen, gebruikt u de opdracht chgrp. Stel u bijvoorbeeld voor dat u een map wilt maken waartoe alle accountants in uw bedrijf toegang hebben. Maak eerst de groepsaccounts door het volgende te typen: groepadd-accounts Als u niet over de juiste machtiging beschikt om een groep te maken, moet u sudo mogelijk gebruiken om extra rechten te verkrijgen of met behulp van de opdracht su overschakelen naar een account met geldige rechten. Nu kunt u de groep voor een map wijzigen door het volgende te typen: chgrp-accounts Bijvoorbeeld: chgrp-accounts testen Om iemand in de accountgroep lees-, schrijf- en uitvoerrechten en de eigenaar te geven, maar alleen-lezen voor iedereen, kunt u de volgende opdracht gebruiken: chmod 770-test Als u een gebruiker aan de accountgroep wilt toevoegen, wilt u waarschijnlijk de volgende opdracht gebruiken: usermod -a -G-accounts Met de opdracht hierboven wordt de accountgroep toegevoegd aan de lijst met secundaire groepen waartoe de gebruiker toegang heeft. U kunt een map maken en de machtigingen voor die map op hetzelfde moment instellen met behulp van de volgende opdracht: mkdir -m777 Met de opdracht hierboven wordt een map gemaakt waartoe iedereen toegang heeft. Het is zeer zeldzaam dat u iets wilt maken met dit soort machtigingen. Stel je voor dat je een mappenstructuur wilt maken, maar niet elke afzonderlijke map samen met de weg wilt maken en je een weg in een boom wilt werken. U kunt bijvoorbeeld als volgt mappen voor uw muziek maken: Het zou vervelend zijn om de rock-map te maken, dan de alice cooper en queen-map en vervolgens de rap-map en de dr dre-map te maken en vervolgens de jazz-map en vervolgens de map louisjordan. Door de volgende schakeloptie op te geven, kunt u alle bovenliggende mappen on the fly maken als ze nog niet bestaan. mkdir -p Als u bijvoorbeeld een van de bovenstaande mappen wilt maken, probeert u de volgende opdracht: mkdir -p ~ / music / rock / alicecooper Standaard geeft de opdracht mkdir niet aan of de map die u aan het maken bent, met succes is aangemaakt. Als er geen fouten verschijnen, kunt u ervan uitgaan dat dit het geval is. Als u meer uitgebreide uitvoer wilt zodat u weet wat er is gemaakt, gebruikt u de volgende schakelaar. mkdir -v De uitvoer zal in de lijn liggen vanmkdir: map / pad / naar / mapnaam gemaakt. Soms wilt u de opdracht "mkdir" gebruiken als onderdeel van een shellscript. Laten we bijvoorbeeld een script bekijken dat een pad accepteert. Wanneer het script wordt uitgevoerd, wordt de map gemaakt en wordt één tekstbestand met de naam "Hallo" toegevoegd. #! / bin / bash mkdir $ @ cd $ @ raak hallo aan De eerste regel moet worden opgenomen in elk script dat u schrijft en wordt gebruikt om aan te geven dat dit inderdaad een BASH-script is. De opdracht "mkdir" wordt gebruikt om een map te maken. De "$ @" (ook bekend als invoerparameters) aan het einde van de 2e en 3e regel wordt vervangen door de waarde die u opgeeft bij het uitvoeren van het script. De opdracht "cd" wordt gewijzigd in de map die u opgeeft en tot slot maakt de aanraakopdracht een leeg bestand met de naam "hallo". Je kunt het script zelf uitproberen. Volg deze instructies om dit te doen: Wanneer u het script uitvoert, wordt een map met de naam "test" gemaakt en als u naar die map gaat (cd test) en voer een directorylijst uit (ls), je ziet een enkel bestand genaamd "hallo". Tot zover goed, maar probeer nu stap 7 opnieuw uit te voeren. Er zijn verschillende dingen die we kunnen doen om het script te verbeteren. Als de map bijvoorbeeld al bestaat, maakt het ons niet uit hoe lang het bestaat. #! / bin / bash mkdir -p $ @ cd $ @ raak hallo aan Als u de -p opgeeft als onderdeel van de opdracht mkdir, wordt er geen fout weergegeven als de map al bestaat, maar als deze nog niet bestaat, wordt deze gemaakt. Zoals het geval is, maakt het aanraakcommando een bestand aan als het niet bestaat, maar als het wel bestaat, wijzigt het gewoon de laatst gebruikte datum en tijd. Stel je voor dat de aanraakzin is vervangen door een echo-instructie die als volgt tekst naar een bestand schrijft: #! / bin / bash mkdir -p $ @ cd $ @ echo "hallo" >> hallo Als u de opdracht "./createhellodirectory.sh test" opnieuw uitvoert, zal het effect hiervan zijn dat het bestand "hallo" in de testdirectory steeds groter wordt met steeds meer regels met het woord "hallo" erin. Nu, dit kan wel of niet zijn zoals bedoeld, maar laten we voor nu zeggen dat dit niet de gewenste actie is. U kunt als volgt een test schrijven om ervoor te zorgen dat de map niet bestaat voordat u de echo-opdracht uitvoert. #! / bin / bash mkdir $ @ 2> / dev / null; als $? -eq 0; dan cd $ @ echo "hallo" >> hallo exit fi Het bovenstaande script is mijn voorkeursmethode voor het maken van mappen. Met de opdracht mkdir wordt de map gemaakt die wordt doorgegeven als een invoerparameter, maar elke foutuitvoer wordt verzonden naar / dev / null (wat in essentie nergens betekent). De derde regel controleert de uitvoerstatus van de vorige opdracht, die de "mkdir" -instructie is en als deze is geslaagd, worden de instructies uitgevoerd totdat de "fi" -instructie is bereikt. Dit betekent dat je de map kunt maken en alle dingen kunt doen die je wilt als de opdracht succesvol is. Als u iets anders wilt doen als het commando niet succesvol was, dan kunt u eenvoudig een else-statement als volgt invoeren: #! / bin / bash mkdir $ @ 2> / dev / null; als $? -eq 0; thencd $ @ echo "hallo" >> helloexitelsecd $ @ echo "hallo"> helloexitfi In het bovenstaande script als de mkdir-opdracht werkt, verzendt de echo-instructie het woord "hallo" naar het einde van het bestand met de naam "hallo", terwijl als het niet bestaat een nieuw bestand wordt gemaakt met de naam "hallo" met het woord " hallo "erin. Dit voorbeeld is niet bijzonder praktisch omdat je dezelfde resultaten kunt behalen door simpelweg de echo "hallo"> hallo lijn. Het punt van het voorbeeld is om te laten zien dat je het "mkdir" commando kunt uitvoeren, de foutuitvoer kunt verbergen, de status van het commando kunt controleren om te zien of het succesvol was of niet en voer dan een set commando's uit als het "mkdir" commando was succesvol en een andere reeks commando's als dat niet het geval was. De machtigingen van de nieuwe map wijzigen
Een map maken en tegelijkertijd machtigingen instellen
Maak een map en eventuele ouders die nodig zijn
Bevestiging krijgen dat een directory is aangemaakt
"Mkdir" gebruiken in een shellscript