Wie zeige ich 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 zusammenstellen kann und zeigen könnte:
/Application/XAMPP/xamppfiles/phpmyadmin/config.inc.php
8 answers
Benutze realpath
Z.B.:
$ realpath README.md
/Users/joe/my/long/directory/structure/README.md
, Antwortete hier auf stackoverflow: https://stackoverflow.com/a/3915075/441960
Stellen Sie sicher, dass Sie die Coreutils auf Homebrew herunterladen, da sie nicht standardmäßig auf allen Macs installiert sind:
brew install coreutils
Zu Ihrer Information, 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2020-06-30 16:24:03
Von hier: https://stackoverflow.com/a/4031502/804713
Macports und Homebrew stellen ein Coreutils-Paket mit Greadlink bereit (GNU readlink). kredit an Michael Kallweit Post in mackb.com
Brew install coreutils
Greadlink -f Datei.txt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-05-23 12:41:50
Es gibt viele Möglichkeiten, das zu tun; Hier ist ein Beispiel, das für Sie funktionieren kann:
claw:~ jonv$ echo `pwd`/`ls config.in.php`
/Users/jonv/config.in.php
Wenn Sie weitere Beispiele wünschen, gibt es eine Reihe von dieser Beitrag bei Stackoverflow.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-05-23 11:33:49
Führen Sie unter Mac OSX die folgenden Schritte aus:
]}
-
cd
in das Verzeichnis der Zieldatei. - Geben Sie einen der folgenden Terminalbefehle ein.
ls "`pwd`/file.txt"
echo $(pwd)/file.txt
- Ersetzen Sie
file.txt
durch Ihren tatsächlichen Dateinamen. - Drücken Sie Enter.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-03-24 06:12:55
Sie können auch den Befehl" Suchen " verwenden, um alle Dateien mit vollständigem Pfad aufzulisten:
find DirectoryName -type f
Oder nur das Folgende:
find . -type f
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-01-22 10:07:23
Mochte keine der gegebenen Lösungen, also machte ich meine eigene basierend auf https://stackoverflow.com/a/22684652/953327
Create alias, der einfach ein Funktionsaufruf ist, der pwd
und ls $1
kombiniert. Sie können dies dann zu Ihrem .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 "Liste Datei", macht Sinn für mich, aber fühlen Sie sich frei zu ändern.
Update (Danke @santiago-arizti) Um verwenden zu können dies mit relativen Pfaden (zB lsf ../../readme.md
)
alias lsf='function _lsf(){ (cd $(dirname "$1") && echo $(pwd)/$(basename "$1")) };_lsf'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-07-26 22:12:13
Im Folgenden wird eine Datei im Arbeitsverzeichnis gefunden, die mit file.txt
übereinstimmt, und ihr absoluter Pfad zurückgegeben
find `pwd` -name file.txt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-02-07 00:12:06
Ich wollte mehr als Sie brauchten, ich musste auch nach Dateien in einem relativen Verzeichnis fragen können, wie ../../readme.md
, und das Ergebnis sollte ungefähr /Users/santi/readme.md
Also habe ich ein (ausführbares) Skript in einem Ordner erstellt, der Teil des $PATH
namens lsf
mit folgendem Inhalt ist:
#!/bin/bash
F=${1:?'usage lsf ../../readme.md'}
( cd $(dirname "$F") && echo $(pwd)/$(basename "$F") )
So können Sie es wie folgt verwenden:
santi@santis-mac:~/p/dir1/dir2$ lsf ../../readme.md
/Users/santi/p/readme.md
Keine Parameter gibt Ihnen Warnung
santi@santis-mac:~/p/dir1/dir2$ lsf
/Users/santi/bin/lsf: line 3: 1: usage lsf ../../readme.md
Gefälschte Verzeichnis gibt Ihnen 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 real directory warnt nicht (Sie können bei Bedarf Validierung hinzufügen)
santi@santis-mac:~/p/dir1/dir2$ lsf ../../fakefile.md
/Users/santi/p/fakefile.md
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-07-26 22:18:13