GNU/Linux >> Linux Esercitazione >  >> Linux

Ottieni l'ultimo dirname/nomefile in un argomento di percorso file in Bash

Il seguente approccio può essere utilizzato per ottenere qualsiasi percorso di un percorso:

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

Uscita:

c
b
a

Bash può ottenere l'ultima parte di un percorso senza dover chiamare il basename esterno :

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

Questo utilizza l'espansione dei parametri di Bash per rimuovere la parte della stringa prima dell'ultima barra (rimanente).


basename rimuove il prefisso di directory di un percorso:

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

Per stampare il nome del file senza utilizzare comandi esterni,

Esegui:

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

Questo comando deve essere eseguito più velocemente di basename e dirname .


Linux
  1. Come si normalizza un percorso di file in Bash?

  2. Estrai il nome base del file senza percorso ed estensione in bash

  3. Ottieni mtime di un file specifico usando Bash?

  4. Come ottenere il percorso completo di un file?

  5. Come ottenere il percorso del file corrente (pwd) in Linux da C?

Bash:Scrivi su file

Comando sorgente Bash

Come ottenere il nome del file dal percorso completo in Linux

Ottieni il percorso completo da Bash Script?

Utilizzo del comando Linux Dirname negli script Bash

Ottieni la data dell'ultima modifica del file in Linux