Mac 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)를 포함하는 coreutils 패키지를 제공합니다. mackb.com의 Michael Kallweitt 게시물에 대한 크레딧

brew install coreutils

greadlink -f file.txt


1
이것은 나를 미치게했다. 나는 -f비 GNU에서 작동하지 않는 이유 와 작동 방법을 생각하고있었습니다. 작동합니다. 감사합니다
sdkks

1
이것은 디렉토리에서도 작동합니다.
Paul Razvan Berg

20

그렇게하는 방법에는 여러 가지가 있습니다. 다음은 귀하에게 적합한 예입니다.

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

더 많은 예제를 원한다면 게시물에 stackoverflow가 있습니다.


1
그러나 stackoverflow.com/questions/5265702/… 에 대한 가장 좋은 답변은 OS X에서 즉시 작동하지 않습니다.
Quentin Pradet

9

Mac OSX에서 다음 단계를 수행하십시오.

  1. cd 대상 파일의 디렉토리에.
  2. 다음 터미널 명령 중 하나를 입력하십시오.
단말기
ls "`pwd`/file.txt"
echo $(pwd)/file.txt
  1. 교체 file.txt실제 파일 이름.
  2. 를 누릅니다 Enter.

2

"find"명령을 사용하여 전체 경로가있는 모든 파일을 나열 할 수도 있습니다.

find DirectoryName -type f

또는 다음과 같습니다.

find . -type f

1
이것은 절대 경로를 반환하지 않습니다 (OP가 찾고 있던 것 같습니다)
Ad N

2

주어진 솔루션 중 어느 것이 마음에 들지 않아서 https : //.com/a/22684652/953327을 기반으로 내 자신을 구성했습니다.

단순히 함수 호출이 수확기입니다 별칭 만들기 pwdls $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'
santiago arizti

마음에 들지 않기를 바랍니다. 저는 제 자신의 대답을 추가했지만 별명 대신 $ 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

stackoverflow에서 여기에 답변 : https : //.com/a/3915075/441960

참고로, 내 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
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.