We werken vaak met Linux-bestanden tijdens het maken van shellscripts. Maar soms moeten we het volledige pad weten van een bestand waaraan we werken en dit artikel laat u weten hoe u het volledige pad van een bestand kunt achterhalen. We hebben enkele methoden vermeld waarmee u de locatie van een bepaald bestand kunt vinden.
Maar voordat we verder gaan, laten we eerst een bestand maken:
Uit de bovenstaande uitvoer blijkt duidelijk dat file.txt met succes is aangemaakt.
Nu zullen we de methoden bekijken die ons het volledige pad van een bestand zullen geven. In totaal worden er in dit artikel 6 methoden vermeld. Ze bevatten:
Java-operator
Methode 1: Het readlink-commando
De opdracht readlink wordt gebruikt om canonieke bestandsnamen af te drukken. We zullen de optie -f gebruiken in combinatie met readlink om de locatie van het bestand af te drukken. Hier zijn de implementatie en output:
Methode 2: Het realpath-commando
De opdracht realpath geeft het absolute pad van een bestand weer. We zullen hier geen enkele optie gebruiken, in tegenstelling tot de readlink-opdracht. Hieronder vindt u de implementatie en output:
multiplexer
Methode 3: Het dirname-commando
Een andere interessante optie is het dirname-commando. Het neemt het volledige pad van een bestand, verwijdert de bestandsnaam van het pad en geeft de rest op het scherm weer. Bekijk hieronder de implementatie en output:
Methode 4: De combinatie van basename- en dirname-opdrachten
We hebben gezien hoe je de opdracht dirname kunt gebruiken. Maar er is nog iets dat we met dit commando kunnen doen. We kunnen dit commando combineren met een ander commando genaamd basename. Het basename-commando doet het tegenovergestelde van dirname. Het neemt het volledige pad van een bestand, verwijdert alles wat vóór de bestandsnaam verschijnt en geeft de rest op het scherm weer.
Nu gaan we verder met de demonstratie. Maar voordat we het gecombineerde gebruik van basisnaam en mapnaam demonstreren, zullen we eerst zien hoe basisnaam werkt:
Het is duidelijk dat de bovenstaande uitvoer alleen de bestandsnaam toont.
Vervolgens zullen we zien hoe de bovenstaande commando’s samen kunnen worden gebruikt. Laten we een shellscript maken met de naam file_path.sh, dat het volgende bevat:
#!/bin/bash echo '$(cd '$(dirname '')' && pwd -P)/$(basename '')'>
Hierboven hebben we de opdracht dirname gebruikt om de locatie van het bestand te vinden, die we zullen invoeren als het eerste opdrachtregelargument. Vervolgens navigeerden we naar de bestandslocatie en drukten de huidige werkmap af. We hebben de fysieke locatie van het bestand opgevraagd met behulp van de opdracht -P. Ten slotte hebben we het commando basename gebruikt om alleen de bestandsnaam af te drukken.
Als we het bovenstaande shellscript uitvoeren, zal de uitvoer zijn:
We kunnen hierboven zien dat de uitvoer van deze twee opdrachten tot één wordt samengevoegd om het volledige pad van het bestand te krijgen.
Methode 5: Het zoekcommando
De commando vinden is een andere manier om het volledige pad van een bestand te achterhalen. Laten we eens kijken hoe het werkt:
Python sorteert tupels
Hierboven hebben we de opdracht find gebruikt met de volgende subopdrachten om de bestandslocatie te achterhalen:
- De -type f commando helpt ons bij het zoeken naar bestanden.
- De -naam commando helpt ons door te zoeken naar de bestanden in de huidige werkmap en de submappen ervan.
De bovenstaande uitvoer toont ons duidelijk het volledige pad van het bestand.
Methode 6: Het ls-commando
Nog een andere methode is het gebruik van de opdracht ls. Als een map als argument wordt doorgegeven, worden alle bestanden en mappen weergegeven die zich in die map bevinden. Maar als er samen met het pwd-commando een bestandsnaam wordt doorgegeven, toont het commando ons de bestandslocatie. Zie het volgende:
We kunnen hierboven zien dat het volledige pad van het bestand op het scherm wordt weergegeven.
regex-java
Conclusie :
In dit artikel hebben we enkele handige manieren besproken om het volledige pad van een bestand te achterhalen. Gebruik dus de volgende keer dat u vastloopt een van de bovenstaande methoden om onmiddellijk uw antwoord te krijgen.