मैक OSX टर्मिनल में पूर्ण फ़ाइल नाम सहित किसी फ़ाइल का पूर्ण पथ कैसे दिखाया जाए?


40

'ls' फ़ाइल का नाम दिखा सकता है, जैसे

ls config.inc.php
config.inc.php 

'pwd' वर्तमान फ़ोल्डर को पूर्ण पथ दिखाता है, उदा

pwd
/Application/XAMPP/xamppfiles/phpmyadmin

क्या कोई आदेश उन्हें एक साथ रख सकता है, दिखा सकेगा:

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

जवाबों:


31

यहां से: https://stackoverflow.com/a/4031502/804713

macports और homebrew greadlink (GNU readlink) युक्त कोरूटिल्स पैकेज प्रदान करते हैं। mackb.com में माइकल कल्लवीट पोस्ट को श्रेय

काढ़ा स्थापित coreutils

greadlink -f file.txt


1
यह मुझे पागल कर रहा था। मैं सोच रहा था कि -fगैर-जीएनयू पर काम क्यों नहीं किया जाएगा और यह कैसे काम करेगा। यह काम। धन्यवाद
sdkks

1
ध्यान दें कि यह निर्देशिकाओं के लिए भी काम करता है
पॉल रज़वान बर्ग

20

ऐसा करने के कई तरीके हैं; यहाँ एक उदाहरण है जो आपके लिए काम कर सकता है:

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

यदि आप अधिक उदाहरण चाहते हैं, तो इस पोस्ट पर स्टैकओवरफ़्लो पर एक गुच्छा है ।


1
हालाँकि, stackoverflow.com/questions/5265702/… पर अधिकांश अच्छे उत्तर OS X के बॉक्स से बाहर नहीं हैं।
क्वेंटिन प्रदीप

9

Mac OSX में, निम्न चरण करें:

  1. cd लक्ष्य फ़ाइल की निर्देशिका में।
  2. या तो निम्न टर्मिनल कमांड टाइप करें।
टर्मिनल
ls "`pwd`/file.txt"
echo $(pwd)/file.txt
  1. file.txtअपने वास्तविक फ़ाइल नाम से बदलें ।
  2. प्रेस करें Enter

2

आप संपूर्ण पथ के साथ सभी फ़ाइलों को सूचीबद्ध करने के लिए "खोज" कमांड का भी उपयोग कर सकते हैं:

find DirectoryName -type f

या सिर्फ निम्नलिखित:

find . -type f

1
यह निरपेक्ष पथ को वापस नहीं करता है (जो ऐसा प्रतीत होता है कि ओपी क्या देख रहा था)
विज्ञापन एन

2

दिए गए किसी भी समाधान को पसंद नहीं किया, इसलिए मैंने https://stackoverflow.com/a/22684652/953327 पर आधारित अपना स्वयं का बनाया

उपनाम बनाएं जो बस एक फ़ंक्शन कॉल है जो जोड़ती है pwdऔर ls $1.bash_profileयदि आप चुनते हैं तो आप इसे अपने साथ जोड़ सकते हैं।

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

उपयोग का उदाहरण:

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

मैंने lsf"सूची पूर्ण" या "सूची फ़ाइल" के लिए चुना, मेरे लिए समझ में आता है लेकिन संशोधित करने के लिए स्वतंत्र महसूस करता है।


अद्यतन (धन्यवाद @ सैंटियागो-arizti) संबंधित पथ के साथ इस का उपयोग करने में सक्षम होने के (जैसे lsf ../../readme.md)

alias lsf='function _lsf(){ (cd $(dirname "$1") && echo $(pwd)/$(basename "$1")) };_lsf'

मुझे इस तरह से कॉल करने की आवश्यकता थी lsf ../../readme.mdइसलिए मैंने आपके संस्करण को थोड़ा बदल दियाalias lsf='function _lsf(){ (cd $(dirname "$1") && echo $(pwd)/$(basename "$1")) };_lsf'
22-08 बजे सैंटियागो अरतीज़ जूल

आशा है कि आप बुरा न मानें, मैंने अपना उत्तर जोड़ा, लेकिन एक स्क्रिप्ट के साथ एक $ PATH डायर में एक अल्लेज़ के बजाय
santiago arizti

2

मुझे आपकी आवश्यकता से अधिक चाहिए था, मुझे एक रिश्तेदार निर्देशिका में फ़ाइलों के बारे में पूछने में भी सक्षम ../../readme.mdहोना चाहिए , जैसे , और परिणाम कुछ ऐसा होना चाहिए/Users/santi/readme.md

इसलिए मैंने एक फ़ोल्डर में एक (निष्पादन योग्य) स्क्रिप्ट बनाई है जो निम्नलिखित सामग्रियों के साथ $PATHबुलाया lsfगया है:

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

तो आप इसे इस तरह से उपयोग कर सकते हैं:

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

कोई भी पैरामीटर आपको चेतावनी नहीं देता है

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

नकली निर्देशिका आपको चेतावनी देती है (क्योंकि dirname)

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

नकली फ़ाइल लेकिन वास्तविक निर्देशिका चेतावनी नहीं देती है (यदि आपको आवश्यकता हो तो सत्यापन जोड़ सकते हैं)

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

1

निम्न कार्यशील निर्देशिका के भीतर एक फ़ाइल मिलेगी जो मेल खाती है file.txtऔर इसके पूर्ण पथ को वापस करती है

find `pwd` -name file.txt

उत्तम। 654321
Jan Kyu Peblik

1

उपयोग realpath

उदाहरण के लिए:

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

स्टैकओवरफ़्लो पर यहाँ उत्तर दिया गया: https://stackoverflow.com/a/3915075/441960

FYI करें, 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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.