GNU/Linux >> Tutoriels Linux >  >> Linux

Obtenir le dernier nom de répertoire/nom de fichier dans un argument de chemin de fichier dans Bash

L'approche suivante peut être utilisée pour obtenir n'importe quel chemin d'un nom de chemin :

some_path=a/b/c
echo $(basename $some_path)
echo $(basename $(dirname $some_path))
echo $(basename $(dirname $(dirname $some_path)))

Sortie :

c
b
a

Bash peut obtenir la dernière partie d'un chemin sans avoir à appeler le basename externe :

dir="/path/to/whatever/"
dir="${dir%/}"             # strip trailing slash (if any)
subdir="${dir##*/}"

Cela utilise l'expansion des paramètres de Bash pour supprimer la partie de la chaîne avant la dernière barre oblique (restante).


basename supprime le préfixe de répertoire d'un chemin :

$ basename /usr/local/svn/repos/example
example
$ echo "/server/root/$(basename /usr/local/svn/repos/example)"
/server/root/example

Pour imprimer le nom du fichier sans utiliser de commandes externes,

Exécuter :

fileNameWithFullPath="${fileNameWithFullPath%/}";
echo "${fileNameWithFullPath##*/}" # print the file name

Cette commande doit s'exécuter plus rapidement que basename et dirname .


Linux
  1. Vue complète de l'endroit où la variable de chemin est définie dans Bash ?

  2. Obtenir le chemin complet depuis le script Bash ?

  3. Extraire le nom de base du fichier sans chemin ni extension dans bash

  4. Obtenir mtime d'un fichier spécifique en utilisant Bash ?

  5. Comment obtenir le chemin complet d'un fichier ?

Bash :Écrire dans un fichier

Commande de source bash

Comment obtenir le nom de fichier à partir du chemin complet sous Linux

Utilisation de la commande Linux Basename dans les scripts Bash

Utilisation de la commande Linux Dirname dans les scripts Bash

Obtenir la date de la dernière modification du fichier sous Linux