comando bash / fish per stampare il percorso assoluto di un file


448

Domanda: esiste un semplice comando sh / bash / zsh / fish / ... per stampare il percorso assoluto di qualunque file lo alimento?

Caso di utilizzo: Sono in directory /a/be mi piacerebbe stampare il percorso completo del file csulla riga di comando in modo che possa facilmente incollarlo in un altro programma: /a/b/c. Semplice, ma un piccolo programma per farlo potrebbe probabilmente farmi risparmiare circa 5 secondi quando si tratta di gestire percorsi lunghi, che alla fine si sommano. Quindi mi sorprende il fatto che non riesco a trovare un'utilità standard per fare questo - c'è davvero nessuno?

Ecco un'implementazione di esempio, abspath.py:

#!/usr/bin/python
# Author: Diggory Hardy <diggory.hardy@gmail.com>
# Licence: public domain
# Purpose: print the absolute path of all input paths

import sys
import os.path
if len(sys.argv)>1:
    for i in range(1,len(sys.argv)):
        print os.path.abspath( sys.argv[i] )
    sys.exit(0)
else:
    print >> sys.stderr, "Usage: ",sys.argv[0]," PATH."
    sys.exit(1)

Direi che la risposta di @ DennisWilliamson (usando l'opzione -m) è superiore per (di solito) essere più portatile e lavorare con file che non esistono.
TTT

O la risposta di Flimm; entrambe sono buone soluzioni. Bannier tuttavia risponde meglio alla mia domanda originale.
dhardy,

3
Utenti OSX: vedi questa risposta
Ian

Risposte:


561

Prova realpath.

$ realpath example.txt
/home/username/example.txt

133
+1, programma molto bello. Si noti che si tratta di un comando esterno (non di una shell integrata) e potrebbe non essere presente in tutti i sistemi per impostazione predefinita, ad esempio potrebbe essere necessario installarlo. In Debian risiede in un pacchetto separato con lo stesso nome.
Roman Cheplyaka

5
Ho aggiunto al mio percorso un realpathformato da: github.com/westonruter/misc-cli-tools/blob/master/realpath
Weston Ruter

1
@Flimm: ti darà comunque un percorso valido dato un percorso relativo. Se vuoi sapere dell'esistenza dei file usa un altro strumento come ad esempio test.
Benjamin Bannier,

14
@Dalin: prova a installare coreutils. Il binario si chiama grealpath.
Toni Penya-Alba,

5
Questo strumento è stato introdotto in GNU coreutils 8.15 (nel 2012), quindi è abbastanza nuovo.
marbu,

318

Prova readlinkche risolverà i collegamenti simbolici:

readlink -e /foo/bar/baz

50
Preferirei usare '-f' invece di '-e' in modo da poter vedere il percorso assoluto di un file inesistente.
hluk,

5
Mi sembra il più semplice, pur essendo portatile. readlink è la porta dei coreutils di gnu, quindi sarà installato su quasi tutte le distribuzioni di linux, ad eccezione di quelle integrate.
catphive del

14
Mi sembra che -msia l'opzione migliore da usare.
Matt Joiner,

1
@Dalin: /usr/bin/readlinksu Mavericks. O intendevi dire che quelle opzioni non si trovano su OS X? Sembra essere una versione stent di BSD ...: p
iconoclast

14
@iconoclast Queste opzioni non sono disponibili su OSX, e secondo la readlinkmanpage BSD only the target of the symbolic link is printed. If the given argument is not a symbolic link, readlink will print nothing and exit with an error:, quindi readlink non funzionerà a tale scopo su OSX
SnoringFrog

257
#! /bin/sh
echo "$(cd "$(dirname "$1")"; pwd -P)/$(basename "$1")"

8
Non dimenticare di citare tutte le cose. Se non capisci perché, prova il tuo programma su un file a b(due spazi tra aeb, SO ne mangia uno).
Roman Cheplyaka,

1
prova anche su "/" si trasforma in "///"
George,

35
l'unica soluzione POSIX finora che non richiede di scrivere e compilare un eseguibile poiché readlink e realpath non sono POSIX
Ciro Santilli 29 冠状 病 六四 事件 法轮功

25
Ero solito function realpath { echo $(cd $(dirname $1); pwd)/$(basename $1); }farmi un realpathcomando (risposta attualmente accettata) su OS X. Grazie!
James Bedford,

1
Ho usato questo metodo per definire i nomi dei file di registro per gli script:LOG=$(echo $(cd $(dirname $0); pwd)/$(basename $0 .sh).log)
DrStrangepork,

84

Dimentica readlinke realpathquali potrebbero essere o meno installati sul tuo sistema.

Espandendo la risposta di dogbane qui sopra viene espressa come una funzione:

#!/bin/bash
get_abs_filename() {
  # $1 : relative filename
  echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")"
}

puoi quindi usarlo in questo modo:

myabsfile=$(get_abs_filename "../../foo/bar/file.txt")

Come e perché funziona?

La soluzione sfrutta il fatto che il pwdcomando integrato di Bash stamperà il percorso assoluto della directory corrente quando viene richiamato senza argomenti.

Perché mi piace questa soluzione?

È portatile e non richiede nessuno dei due readlinko realpathche spesso non esiste su un'installazione predefinita di una determinata distribuzione Linux / Unix.

E se dir non esiste?

Come indicato sopra, la funzione fallirà e verrà stampata su stderr se il percorso della directory indicato non esiste. Questo potrebbe non essere quello che vuoi. È possibile espandere la funzione per gestire quella situazione:

#!/bin/bash
get_abs_filename() {
  # $1 : relative filename
  if [ -d "$(dirname "$1")" ]; then
    echo "$(cd "$(dirname "$1")" && pwd)/$(basename "$1")"
  fi
}

Ora restituirà una stringa vuota se non esiste una directory principale.

Come gestisci il trailing '..' o '.' in input?

Bene, in questo caso fornisce un percorso assoluto, ma non minimo. Sembrerà che:

/Users/bob/Documents/..

Se vuoi risolvere il ".." dovrai creare lo script come:

get_abs_filename() {
  # $1 : relative filename
  filename=$1
  parentdir=$(dirname "${filename}")

  if [ -d "${filename}" ]; then
      echo "$(cd "${filename}" && pwd)"
  elif [ -d "${parentdir}" ]; then
    echo "$(cd "${parentdir}" && pwd)/$(basename "${filename}")"
  fi
}

Bella funzione, ma a quanto pare non hai capito la domanda. Volevo qualcosa per uso interattivo, non script.
Dhardy,

3
Vorrei aggiungere che realpathproviene dal pacchetto coreutils, che contiene anche strumenti come who, toucho cat. È un set abbastanza standard di strumenti GNU, quindi puoi essere abbastanza sicuro che questo sia installato su quasi tutte le macchine basate su Linux. Detto questo, hai ragione: ci sono 2 problemi con esso: i) probabilmente ti mancherai nell'installazione predefinita su sistemi unix non GNU (come OpenBSD) ii) questo strumento è stato introdotto nella versione 8.15 (quindi è abbastanza nuovo, dal 2012), quindi ti mancherà su sistemi stabili a lungo termine (come RHEL 6).
marbu,

1
Bene, almeno sembra che Continuum Analytics (i produttori della distribuzione Anaconda Python ) abbia gradito questa risposta. È implementato (con un riferimento che rimanda qui) nel loro script " activ " , che viene utilizzato per attivare gli ambienti virtuali creati dallo strumento conda. Quindi ... buono!
wjv,

1
Funziona solo per le directory (poiché non c'è altro) e non può far fronte a ".." e ".". Vedere la mia risposta che dovrebbe gestire tutto: stackoverflow.com/a/23002317/2709
Alexander Klimetschek

3
@marbu realpath non è presente su Ubuntu 14.04 o su Debian Wheezy. Può diventare un po 'standard nel tempo, ma certamente non lo è ora. Si noti inoltre che l'OP non ha detto nulla su Linux o GNU. Bash è più ampiamente usato di così.
MC0e,

76
$ readlink -m FILE
/path/to/FILE

Questo è meglio di readlink -e FILEo realpath, perché funziona anche se il file non esiste.


Bello. Questo funziona anche su file / directory che esistono ma non sono collegamenti simbolici.
quietmint

Ho readlink disponibile su OS X 10.9 (Mavericks), quindi questa è sicuramente la migliore risposta qui.
Kenneth Hoste,

6
@KennethHoste: l' -mopzione non è disponibile su Mavericks.
iconoclasta,

2
Sicuramente non si trova su un'installazione DEFAULT OSX.
Fran Marzoa,

funziona su Linux (CentOS) grazie, perché realpath non esisteva per questo
jimh

65

Questo percorso relativo alla funzione shell del convertitore di percorso assoluto

  • non richiede utilità (solo cde pwd)
  • funziona per directory e file
  • maniglie ..e.
  • gestisce gli spazi in dir o nomi di file
  • richiede che il file o la directory esistano
  • non restituisce nulla se non esiste nulla nel percorso specificato
  • gestisce i percorsi assoluti come input (li attraversa essenzialmente)

Codice:

function abspath() {
    # generate absolute path from relative path
    # $1     : relative filename
    # return : absolute path
    if [ -d "$1" ]; then
        # dir
        (cd "$1"; pwd)
    elif [ -f "$1" ]; then
        # file
        if [[ $1 = /* ]]; then
            echo "$1"
        elif [[ $1 == */* ]]; then
            echo "$(cd "${1%/*}"; pwd)/${1##*/}"
        else
            echo "$(pwd)/$1"
        fi
    fi
}

Campione:

# assume inside /parent/cur
abspath file.txt        => /parent/cur/file.txt
abspath .               => /parent/cur
abspath ..              => /parent
abspath ../dir/file.txt => /parent/dir/file.txt
abspath ../dir/../dir   => /parent/dir          # anything cd can handle
abspath doesnotexist    =>                      # empty result if file/dir does not exist
abspath /file.txt       => /file.txt            # handle absolute path input

Nota: si basa sulle risposte di nolan6000 e bsingh , ma risolve il caso del file.

Comprendo anche che la domanda originale riguardava un'utilità della riga di comando esistente. Ma dal momento che questa sembra essere LA domanda su stackoverflow per quello che include script di shell che vogliono avere dipendenze minime, ho messo questa soluzione di script qui, così posso trovarla in seguito :)


Grazie. Questo è quello che vado su OSX
Greg,

Questo non funziona per le directory con spazi, ovvero: $ abspath 'a b c/file.txt'Questo perché l'argomento su cdnon è citato. Per ovviare a questo, invece di citare l'intero argomento per echo(c'è una ragione per queste citazioni?) Citare solo gli argomenti del percorso. Vale a dire sostituire echo "$(cd ${1%/*}; pwd)/${1##*/}"con echo $(cd "${1%/*}"; pwd)/${1##*/}.
george

@george Grazie per averlo notato, l'ho risolto.
Alexander Klimetschek il

1
Ho esaminato decine di soluzioni semi-armate e questa sembra sicuramente essere la soluzione solo concisa e accurata solo bash. Potresti snellirlo ancora di più sostituendolo echo "$(cd "$1"; pwd)"con (cd "$1"; pwd). Non è necessario l'eco qui.
Sei

@Six True, aggiornato. Le parentesi graffe ( ... )sono ancora necessarie, quindi ciò cdaccade in una subshell, poiché non vogliamo cambiare la directory di lavoro per nessun chiamante abspath.
Alexander Klimetschek,

24

Il findcomando può aiutare

find $PWD -name ex*
find $PWD -name example.log

Elenca tutti i file all'interno o al di sotto della directory corrente con nomi corrispondenti al modello. Puoi semplificarlo se otterrai solo alcuni risultati (es. Directory vicino alla parte inferiore dell'albero contenente pochi file), giusto

find $PWD

Lo uso su Solaris 10, che non ha menzionato le altre utility.


1
non ho criticato questo commento alla prima lettura; il punto chiave qui è che se si assegna un percorso assoluto al comando find, verranno visualizzati i risultati in un percorso assoluto. quindi usare $ PWD è il percorso assoluto di dove ti trovi in ​​modo da ottenere l'output come assoluto.
simbo1905,

4
Se ti affidi PWD, potresti semplicemente usare $PWD/$filename.
Jonny,

Questo approccio può essere migliorato con l'uso di -maxdepth 1. Inoltre, non dimenticare di citare: potenziali problemi di sicurezza qui, a seconda di come lo usi.
MC0e,

1
@jonny: $ PWD / $ nomefile fallisce se $ nomefile è già assoluto.
MC0e,

Ciò non riesce se il nome del file viene dato come "./filename.txt" (con punto e barra iniziali).
Mark Stosberg,

15

Se non si dispone di utility readlink o realpath di quelle che è possibile utilizzare la seguente funzione che funziona in bash e zsh (non sono sicuro del resto).

abspath () { case "$1" in /*)printf "%s\n" "$1";; *)printf "%s\n" "$PWD/$1";; esac; }

Questo funziona anche con file inesistenti (come la funzione python os.path.abspath).

Sfortunatamente abspath ./../somefilenon si sbarazza dei punti.


1
Mi sembra portatile. D'altra parte, si romperà ad esempio su un nome file che contiene una nuova riga.
Roman Cheplyaka,

1
Per migliorare ulteriormente, sostituire echo "$1"con printf "%s\n" "$1"(lo stesso con la seconda eco). echopuò interpretare le barre rovesciate nei suoi argomenti.
Roman Cheplyaka,

Ancora una volta, hai ragione! In realtà, il comportamento del comando echo in zsh è diverso da bash.
hluk,

1
A rigor di termini, sotto il comportamento POSIX di eco non è definito se gli argomenti contengono barre rovesciate. Tuttavia, è definito sotto l'estensione XSI (vale a dire, l'eco dovrebbe interpretare le sequenze di escape). Ma sia bash che zsh sono così lontani persino dalla conformità POSIX ...
Roman Cheplyaka,

Scusa, ma non vedo il punto. Ho già fornito una risposta come script con più funzionalità di questa e non è necessario utilizzarla all'interno di uno script di shell.
dhardy,

10

Ecco una funzione solo zsh che mi piace per la sua compattezza. Usa il modificatore di espansione 'A' - vedi zshexpn (1).

realpath() { for f in "$@"; do echo ${f}(:A); done }

Caspita è una soluzione elegante !!
ShellFish,

6

Non v'è generalmente una cosa come il absolute path un file (questa affermazione significa che ci possono essere più di uno, in generale, da qui l'uso dell'articolo determinativo il non è appropriato). Un absolute pathè qualsiasi percorso che parte dalla radice "/" e designa un file senza ambiguità indipendentemente dalla directory di lavoro (vedi ad esempio Wikipedia ).

A relative pathè un percorso che deve essere interpretato a partire da un'altra directory. Potrebbe essere la directory di lavoro se viene relative pathmanipolata da un'applicazione (anche se non necessariamente). Quando si trova in un collegamento simbolico in una directory, è generalmente inteso per essere relativo a quella directory (sebbene l'utente possa avere in mente altri usi).

Quindi un percorso assoluto è solo un percorso relativo alla directory principale.

Un percorso (assoluto o relativo) può contenere o meno collegamenti simbolici. In caso contrario, è anche in qualche modo impermeabile ai cambiamenti nella struttura di collegamento, ma ciò non è necessariamente richiesto o addirittura desiderabile. Alcune persone chiamano canonical path(o canonical file nameo resolved path) un punto absolute pathin cui tutti i collegamenti simbolici sono stati risolti, ovvero sono stati sostituiti da un percorso a chiunque si colleghino. I comandi realpathed readlinkentrambi cercano un percorso canonico, ma realpathha solo un'opzione per ottenere un percorso assoluto senza preoccuparsi di risolvere i collegamenti simbolici (insieme a diverse altre opzioni per ottenere vari tipi di percorsi, assoluti o relativi ad alcune directory).

Ciò richiede diverse osservazioni:

  1. i collegamenti simbolici possono essere risolti solo se ciò che si suppone debbano collegare è già stato creato, il che ovviamente non è sempre il caso. I comandi realpathe readlinkhanno opzioni per tener conto di ciò.
  2. una directory su un percorso può in seguito diventare un collegamento simbolico, il che significa che il percorso non lo è più canonical. Quindi il concetto dipende dal tempo (o dall'ambiente).
  3. anche nel caso ideale, quando tutti i collegamenti simbolici possono essere risolti, potrebbe essercene ancora più di uno canonical patha un file, per due motivi:
    • la partizione contenente il file potrebbe essere stata montata contemporaneamente ( ro) su più punti di montaggio.
    • potrebbero esserci collegamenti concreti al file, il che significa essenzialmente che il file esiste in diverse directory.

Quindi, anche con la definizione molto più restrittiva di canonical path, potrebbero esserci diversi percorsi canonici per un file. Ciò significa anche che il qualificatore canonicalè alquanto inadeguato poiché di solito implica una nozione di unicità.

Questo espande una breve discussione sull'argomento in una risposta a un'altra domanda simile in Bash: recuperare il percorso assoluto dato relativo

La mia conclusione è che realpathè progettato meglio e molto più flessibile di readlink. L'unico uso readlinknon coperto da realpathè la chiamata senza opzione che restituisce il valore di un collegamento simbolico.


Non mi dispiace essere sottovalutato, ma mi piace capire perché in modo da poter imparare qualcosa, sia tecnico che riguardante ciò che è considerato una pratica adeguata sul sito. Beh ... almeno mi ha indotto a registrarmi con Meta Stack Overflow per comprendere meglio la sociologia locale. Lo consiglio vivamente. - Tuttavia, se qualcuno ha un'opinione sull'inadeguatezza della mia risposta, sono interessato.
babou,

1
(a) la domanda ha una risposta valida da 2 + 1/2 anni fa, (b) esiste un (singolo) percorso assoluto corrispondente a un percorso relativo (che è quello che volevo), anche se forse non è un file come te sottolineato. A proposito, qualsiasi commento su realpathvs readlinko anche su collegamenti simbolici è un surplus rispetto a quello che ho chiesto.
dhardy,

1
Secondo commento: le risposte brevi sono spesso molto più utili delle lezioni lunghe. Lo overflow dello stack viene generalmente utilizzato per porre domande specifiche.
dhardy,

5
1- il fatto che una domanda abbia avuto una risposta valida per tanto tempo non significa che sia chiusa. Le domande non sono intese solo per uso personale. In effetti, ci sono badge per le risposte che raccolgono più voti rispetto alla risposta convalidata. E con nuovi strumenti, la risposta "migliore" può cambiare nel tempo. Molte persone usano le vecchie risposte a cui si accede tramite la ricerca web.
babou,

1
2 - Insisti sul fatto che esiste un (singolo) percorso assoluto corrispondente a un percorso relativo . Mentre immagino che cosa intendi per "corrispondente", ovvero un percorso derivato dall'originale attraverso un determinato insieme di trasformazioni, la tua affermazione è ancora errata. Esiste un unico percorso canonico "corrispondente". La parola si canonicalriferisce proprio a questa unicità rispetto a un insieme di trasformazioni. Ma, ad esempio, / dev / cdrom è un percorso assoluto perfettamente buono, anche se in realtà è un collegamento a / dev / sr0. Entrambi puntano allo stesso dispositivo. La mia risposta originale indicava un articolo web pertinente.
babou,

5

La dogbane risposta con la descrizione di ciò che sta accadendo:

#! /bin/sh
echo "$(cd "$(dirname "$1")"; pwd)/$(basename "$1")"

Spiegazione:

  1. Questo script ottiene il percorso relativo come argomento "$1"
  2. Quindi otteniamo dirname parte di quel percorso (puoi passare dir o file a questo script):dirname "$1"
  3. Quindi entriamo cd "$(dirname "$1")in questa directory relativa e ne otteniamo il percorso assoluto eseguendo il pwdcomando shell
  4. Dopodiché aggiungiamo basename al percorso assoluto:$(basename "$1")
  5. Come passo finale che echosi

2

Perché le directory dirnamevengono inciampate ../e ritornano ./.

La funzione di nolan6000 può essere modificata per correggere che:

get_abs_filename() {
  # $1 : relative filename
  if [ -d "${1%/*}" ]; then
    echo "$(cd ${1%/*}; pwd)/${1##*/}"
  fi
}

1
Benvenuti in SO! Per piccole modifiche e osservazioni, l'aggiunta di un commento a una risposta esistente potrebbe essere più appropriata dell'aggiunta di una risposta, soprattutto se questa risposta copiata manca di molte altre informazioni della risposta originale. Dopo aver raccolto un po 'più di reputazione, puoi aggiungere commenti alle risposte degli altri. Per ora, prova a guadagnare reputazione ponendo domande uniche e preziose o fornendo risposte autonome e valide.
cfi,

1
Dato che ti riferisci alla risposta di nolan6000, tieni presente che il poster dhardy ha già commentato che non avrebbe accettato la risposta di nolan6000 perché non è alla ricerca di una sceneggiatura. Quindi, a rigor di termini, la tua risposta non risponde alla domanda.
cfi,

la funzione può essere aggiunta .profilee quindi disponibile per l'uso interattivo.
adib

Questo non funzionerà se $1è un semplice nome di file: get_abs_filename foo-> niente (o <current_dir>/foo/foose fooè una directory).
ivan_pozdeev,

2

Questa non è una risposta alla domanda, ma per chi fa script:

echo `cd "$1" 2>/dev/null&&pwd||(cd "$(dirname "$1")";pwd|sed "s|/*\$|/${1##*/}|")`

gestisce / .. ./ etc correttamente. Sembra anche che funzioni su OSX


2

Ho inserito il seguente script sul mio sistema e lo chiamo come alias bash per quando voglio prendere rapidamente il percorso completo di un file nella directory corrente:

#!/bin/bash
/usr/bin/find "$PWD" -maxdepth 1 -mindepth 1 -name "$1"

Non sono sicuro del perché, ma, su OS X quando chiamato da uno script "$ PWD" si espande nel percorso assoluto. Quando il comando find viene chiamato dalla riga di comando, non lo fa. Ma fa quello che voglio ... divertiti.


$PWDha sempre il percorso assoluto della directory di lavoro. Inoltre, findnon tollera le barre, quindi non rispondi alla domanda come richiesto. Un modo più rapido per fare ciò che stai cercando di fare sarebbe semplicementeecho "$PWD/$1"
Adam Katz,

2

Il più semplice se si desidera utilizzare solo i builtin è probabilmente:

find `pwd` -name fileName

Solo altre due parole da digitare, e questo funzionerà su tutti i sistemi unix, così come su OSX.


Vorrei aggiungere -maxdepth 1prima -name(supponendo che il file sia nella directory corrente). Senza questo funzionerà con i file in qualsiasi sottodirectory di pwd, ma non con altri.
Walter Tross,

In effetti hai ragione, la domanda ha specificato che il file si troverebbe nella directory corrente. Cosa intendi con "ma non con gli altri"?
Arj,

Voglio dire find, non troverò un file fuori dall'albero delle directory sotto pwd. Ad esempio, se ci provi find . -name ../existingFile, fallisce.
Walter Tross,

Abbastanza giusto, sì, questo presuppone che tu voglia stampare il percorso completo di un file nel tuo CWD (come da domanda originale), o ovunque nel tuo albero CWD (non nella domanda originale).
Arj,

1
#! /bin/bash

file="$@"
realpath "$file" 2>/dev/null || eval realpath $(echo $file | sed 's/ /\\ /g')

Questo compensa le carenze di realpath, memorizzalo in uno script di shell fullpath. Ora puoi chiamare:

$ cd && touch a\ a && rm A 2>/dev/null 
$ fullpath "a a"
/home/user/a a
$ fullpath ~/a\ a
/home/user/a a
$ fullpath A
A: No such file or directory.

Che cosa risolve? realpath "foo bar"-> /home/myname/foo bar. Se non puoi essere disturbato a citare gli argomenti della riga di comando, non realpathè colpa sua.
ivan_pozdeev

D'accordo, è più di un comodo involucro.
ShellFish,

1

Un'alternativa per ottenere il percorso assoluto in Ruby :

realpath() {ruby -e "require 'Pathname'; puts Pathname.new('$1').realpath.to_s";}

Funziona senza argomenti (cartella corrente) e percorso file o cartella relativo e assoluto come agument.


0

Rispondi con Homebrew

realpathè la risposta migliore, ma se non lo hai installato, devi prima eseguirlo brew install coreutilsche installerà coreutils con molte fantastiche funzioni. Scrivere una funzione personalizzata ed esportarla è troppo lavoro e rischi di errore per qualcosa del genere, ecco due righe:

$ brew install coreutils
$ realpath your-file-name.json 

-1

Ehi ragazzi, lo so che è una vecchia discussione, ma sto solo pubblicando questo come riferimento per chiunque altro abbia visitato questo come me. Se ho capito correttamente la domanda, penso al locate $filenamecomando. Visualizza il percorso assoluto del file fornito, ma solo se esiste.


4
locateè un'utilità per cercare file / percorsi per nome. Potrebbe fare il lavoro ma potrebbe anche trovare altre corrispondenze e potrebbe non trovare un file esistente senza prima chiamare updatedbcome root.
dhardy
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.