이것은 이 질문 과 비슷 하지만 유닉스의 현재 디렉토리에 상대적인 경로를 포함하고 싶습니다. 내가 다음을 수행하면 :
ls -LR | grep .txt
전체 경로는 포함되지 않습니다. 예를 들어 다음과 같은 디렉토리 구조가 있습니다.
test1/file.txt
test2/file1.txt
test2/file2.txt
위의 코드는 다음을 반환합니다.
file.txt
file1.txt
file2.txt
표준 Unix 명령을 사용하여 현재 디렉토리에 상대적인 경로를 포함 시키려면 어떻게해야합니까?
답변
찾기 사용 :
find . -name \*.txt -print
대부분의 GNU / Linux 배포판과 같이 GNU find를 사용하는 시스템에서는 -print를 생략 할 수 있습니다.
답변
(전체 경로) 및 (들여 쓰기 라인 없음 )과 tree
함께를 사용하십시오 .-f
-i
tree -if --noreport .
tree -if --noreport directory/
그런 다음을 사용 grep
하여 원하는 것을 필터링 할 수 있습니다 .
명령이 없으면 설치할 수 있습니다.
RHEL / CentOS 및 Fedora linux에 tree 명령을 설치하려면 다음 명령을 입력하십시오.
# yum install tree -y
Debian / Ubuntu를 사용하는 경우 터미널에서 Mint Linux 유형 다음 명령을 입력하십시오.
$ sudo apt-get install tree -y
답변
시도하십시오 find
. 맨 페이지에서 정확하게 찾을 수 있지만 다음과 같습니다.
find [start directory] -name [what to find]
예를 들어
find . -name "*.txt"
당신이 원하는 것을 주어야합니다.
답변
대신 find를 사용할 수 있습니다.
find . -name '*.txt'
답변
그것은 트릭을 수행합니다.
ls -R1 $PWD | while read l; do case $l in *:) d=${l%:};; "") d=;; *) echo "$d/$l";; esac; done | grep -i ".txt"
그러나 ls
GNU와 Ghostscript 커뮤니티에서 나쁜 형식으로 간주되는 구문 분석을 통해 “죄닝” 함으로써 그렇게합니다.
답변
DIR=your_path
find $DIR | sed 's:""$DIR""::'
‘sed’는 모든 ‘find’결과에서 ‘your_path’를 지 웁니다. 그리고 당신은 ‘DIR’경로와 관련하여받습니다.
답변
find 명령을 사용하여 원하는 파일의 실제 전체 경로 파일 이름을 얻으려면 pwd 명령과 함께 사용하십시오.
find $(pwd) -name \*.txt -print