logo

Com obtenir la ruta completa d'un fitxer a Linux

Sovint treballem amb fitxers Linux mentre creem scripts de shell. Però de vegades necessitem saber la ruta completa d'un fitxer en què estem treballant i aquest article us indicarà com podeu obtenir la ruta completa d'un fitxer. Hem enumerat alguns mètodes que us ajudaran a trobar la ubicació d'un fitxer en concret.

Però abans d'anar més lluny, primer creem un fitxer:



La sortida anterior mostra clarament que el fitxer file.txt s'ha creat correctament.

Ara, farem una ullada als mètodes que ens donaran la ruta completa d'un fitxer. En total, hi ha 6 mètodes enumerats en aquest article. Inclouen:

Mètode 1: L'ordre readlink

L'ordre readlink s'utilitza per imprimir noms de fitxers canònics. Utilitzarem l'opció -f en combinació amb readlink per imprimir la ubicació del fitxer. Aquí teniu la implementació i la sortida:



Mètode 2: L'ordre realpath

L'ordre realpath mostra la ruta absoluta d'un fitxer. No utilitzarem cap opció aquí, a diferència de l'ordre readlink. La implementació i el resultat es detallen a continuació:

Mètode 3: L'ordre dirname

Una altra opció interessant és l'ordre dirname. Pren el camí complet d'un fitxer, elimina el nom del fitxer del camí i mostra la resta a la pantalla. Consulteu la implementació i la sortida a continuació:

Mètode 4: La combinació d'ordres basename i dirname

Hem vist com utilitzar l'ordre dirname. Però hi ha una altra cosa que podem fer amb aquesta comanda. Podem combinar aquesta ordre amb una altra anomenada nom base. L'ordre basename fa tot el contrari de dirname. Pren el camí complet d'un fitxer, elimina el que apareix abans del nom del fitxer i mostra la resta a la pantalla.



Ara, passarem a la manifestació. Però abans de demostrar l'ús combinat de basename i dirname, primer veurem com funciona basename:

Clarament, la sortida anterior mostra només el nom del fitxer.

A continuació, veurem com es poden utilitzar conjuntament les ordres anteriors. Creem un script shell anomenat file_path.sh, que conté el següent:

#!/bin/bash echo '$(cd '$(dirname '$1')' && pwd -P)/$(basename '$1')'>

A dalt, hem utilitzat l'ordre dirname per trobar la ubicació del fitxer, que introduirem com a primer argument de línia d'ordres. A continuació, vam navegar a la ubicació del fitxer i vam imprimir el directori de treball actual. Hem sol·licitat la ubicació física del fitxer mitjançant l'ordre -P. Finalment, hem utilitzat l'ordre basename per imprimir només el nom del fitxer.

Si executem l'script shell anterior, la sortida serà:

Podem veure més amunt que les sortides d'aquestes dues ordres es concatenen en una per obtenir la ruta completa del fitxer.

Mètode 5: L'ordre find

El trobar l'ordre és una altra manera d'obtenir la ruta completa d'un fitxer. Vegem com funciona:

A dalt, hem utilitzat l'ordre find amb les subordres següents per obtenir la ubicació del fitxer:

  • El -tipus f L'ordre ens ajuda a buscar fitxers.
  • El -nom L'ordre ens ajuda a buscar els fitxers del directori de treball actual i els seus subdirectoris.

La sortida anterior ens mostra clarament la ruta completa del fitxer.

Mètode 6: La comanda ls

Un altre mètode és utilitzar l'ordre ls. Si es passa un directori com a argument, s'enumeren tots els fitxers i carpetes que es troben dins d'aquest directori. Però si es passa un nom de fitxer juntament amb l'ordre pwd, l'ordre ens mostra la ubicació del fitxer. Vegeu el següent:

Podem veure més amunt que la ruta completa del fitxer es mostra a la pantalla.

Conclusió :

En aquest article, hem comentat algunes maneres útils d'obtenir la ruta completa d'un fitxer. Per tant, la propera vegada que us quedeu encallat, utilitzeu un dels mètodes anteriors per obtenir la vostra resposta immediatament.