2014-02-15 00:30:37 +0000 2014-02-15 00:30:37 +0000
43
43

Wie zeigt man den vollständigen Pfad einer Datei einschließlich des vollständigen Dateinamens im Mac OSX-Terminal an?

‘ls’ kann den Dateinamen anzeigen, z.B.

ls config.inc.php
config.inc.php

‘pwd’ zeigt den vollständigen Pfad des aktuellen Ordners an, z.B.

pwd
/Application/XAMPP/xamppfiles/phpmyadmin

Gibt es einen Befehl, der sie zusammensetzen kann, würde anzeigen können:

/Application/XAMPP/xamppfiles/phpmyadmin/config.inc.php

Antworten (8)

31
31
31
2015-09-18 19:36:53 +0000

Von hier aus https://stackoverflow.com/a/4031502/804713

macports und homebrew stellen ein coreutils-Paket mit greadlink (GNU readlink) zur Verfügung. credit to Michael Kallweitt post in mackb.com

brew install coreutils

greadlink -f file.txt

20
20
20
2014-02-15 00:55:03 +0000

Es gibt viele Möglichkeiten, das zu tun; hier ist ein Beispiel, das für Sie funktionieren könnte:

claw:~ jonv$ echo `pwd`/`ls config.in.php`
/Users/jonv/config.in.php

Wenn Sie weitere Beispiele wünschen, gibt es eine Menge von dieser Post bei Stackoverflow.

9
9
9
2016-03-24 06:12:55 +0000

Führen Sie unter Mac OSX die folgenden Schritte durch:

  1. cd in das Verzeichnis der Zieldatei
  2. Geben Sie einen der folgenden Terminalbefehle ein: Terminal ls "`pwd`/file.txt" echo $(pwd)/file.txt

  3. Ersetzen Sie file.txt durch Ihren tatsächlichen Dateinamen.

  4. Drücken Sie Enter.

3
3
3
2019-10-17 22:23:18 +0000

Verwenden Sie realpath

Z.B.:

$ realpath README.md 
/Users/joe/my/long/directory/structure/README.md

Hier wird auf Stackoverflow geantwortet: https://stackoverflow.com/a/3915075/441960

FYI, meine Version von MacOS (OSX):

$ uname -a
Darwin my-machine 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 x86_64
3
3
3
2019-01-25 01:03:16 +0000

Mir gefiel keine der vorgegebenen Lösungen, also habe ich mir meine eigene Lösung auf der Grundlage von https://stackoverflow.com/a/22684652/953327

Create alias ausgedacht, das einfach ein Funktionsaufruf ist, der pwd und ls $1 kombiniert. Sie können dies dann zu Ihrer .bash_profile hinzufügen, wenn Sie möchten.

alias lsf='function _lsf(){ echo "$(pwd)/$(ls $1)"; };_lsf'

Anwendungsbeispiel:

lsf registry.lock
-> /tmp/registry.lock

Ich habe lsf für “Liste voll” oder “Listendatei” gewählt, das macht für mich Sinn, aber Sie können es gerne ändern.


Update (Danke @santiago-arizti) Um dies mit relativen Pfaden verwenden zu können (z.B. lsf ../../readme.md)

alias lsf='function _lsf(){ (cd $(dirname "$1") && echo $(pwd)/$(basename "$1")) };_lsf'
2
2
2
2019-07-26 22:18:13 +0000

Ich wollte mehr als Sie brauchten, ich musste auch in der Lage sein, nach Dateien in einem relativen Verzeichnis wie ../../readme.md zu fragen, und das Ergebnis sollte so etwas wie /Users/santi/readme.md

sein. Also habe ich ein (ausführbares) Skript in einem Ordner erstellt, der Teil des Ordners $PATH ist und den Namen lsf trägt, mit folgendem Inhalt:

#!/bin/bash
F=${1:?'usage lsf ../../readme.md'}
( cd $(dirname "$F") && echo $(pwd)/$(basename "$F") )

Sie können es also wie folgt verwenden:

santi@santis-mac:~/p/dir1/dir2$ lsf ../../readme.md 
/Users/santi/p/readme.md

Keine Parameter gibt Ihnen eine Warnung

santi@santis-mac:~/p/dir1/dir2$ lsf
/Users/santi/bin/lsf: line 3: 1: usage lsf ../../readme.md

Gefälschtes Verzeichnis gibt Ihnen eine Warnung (wegen dirname)

santi@santis-mac:~/p/dir1/dir2$ lsf ../../fakedir/readme.md
/Users/santi/bin/lsf: line 5: cd: ../../fakedir: No such file or directory

Gefälschte Datei, aber echtes Verzeichnis gibt keine Warnung (Sie können bei Bedarf eine Validierung hinzufügen)

santi@santis-mac:~/p/dir1/dir2$ lsf ../../fakefile.md 
/Users/santi/p/fakefile.md
2
2
2
2018-01-22 10:07:23 +0000

Sie können auch den Befehl “find” verwenden, um alle Dateien mit vollständigem Pfad aufzulisten:

find DirectoryName -type f

oder nur die folgenden:

find . -type f
1
1
1
2019-02-07 00:12:06 +0000

Im Folgenden wird eine Datei im Arbeitsverzeichnis gefunden, die mit file.txt übereinstimmt, und ihr absoluter Pfad

find `pwd` -name file.txt
``` zurückgegeben