ls 명령 : 파일 당 한 줄씩 재귀 전체 경로 목록을 얻는 방법은 무엇입니까?
반복적 인 한 줄당 경로의 평평한 목록을 추출하려면 어떻게해야합니까?
예를 들어, 전체 경로를 가진 플랫 파일 목록을 원합니다.
/home/dreftymac/.
/home/dreftymac/foo.txt
/home/dreftymac/bar.txt
/home/dreftymac/stackoverflow
/home/dreftymac/stackoverflow/alpha.txt
/home/dreftymac/stackoverflow/bravo.txt
/home/dreftymac/stackoverflow/charlie.txt
ls -a1
거의 필요한 것을 수행하지만 경로 조각을 원하지 않고 전체 경로를 원합니다.
정말로를 사용하려면 ls
awk를 사용하여 출력 형식을 지정하십시오.
ls -R /path | awk '
/:$/&&f{s=$0;f=0}
/:$/&&!f{sub(/:$/,"");s=$0;f=1;next}
NF&&f{ print s"/"$0 }'
찾기 사용 :
find .
find /home/dreftymac
파일 만 원하는 경우 (디렉토리, 장치 등 생략) :
find . -type f
find /home/dreftymac -type f
ls -ld $(find .)
수정 시간별로 출력을 정렬하려면 다음을 수행하십시오.
ls -ltd $(find .)
다음과 같은 간단한 방법을 시도하십시오.
find "$PWD"
가장 좋은 명령은 다음과 같습니다. tree -fi
링크를 사용하지 않고 파일을 사용하려면 >
출력에서 제거 해야합니다.
tree -fi |grep -v \>
각 파일의 특성을 알고 싶다면 (예를 들어 ASCII 파일 만 읽으려면) 두 개의 while
s를 사용하십시오.
tree -fi | \
grep -v \> | \
while read first ; do
file ${first}
done | \
while read second; do
echo ${second} | grep ASCII
done
오, 정말 긴 답변 목록입니다. 그것은 많은 도움이되었고 마침내 내가 찾고있는 내 자신을 만들었습니다.
디렉토리 및 해당 서브 디렉토리의 모든 파일을 나열하려면 다음을 수행하십시오.
find "$PWD" -type f
디렉토리 및 해당 서브 디렉토리의 모든 디렉토리를 나열하려면 다음을 수행하십시오.
find "$PWD" -type d
디렉토리 및 하위 디렉토리에있는 모든 디렉토리 및 파일을 나열하려면
find "$PWD"
나는 전체 경로를 모르지만 -R
재귀에 사용할 수 있습니다 . 또는에 구부러지지 않은 경우 할 ls
수 있습니다 find *
.
ls 이외의 외부 명령을 사용하지 않는 경우
ls -R1 /path |
while read l; do case $l in *:) d=${l%:};; "") d=;; *) echo "$d/$l";; esac; done
du -a
찾기 / 위치를 찾을 수없는 일부 제한된 기기 쉘에 유용합니다.
찾기 / 트릭을 할 것입니다
평평한 목록을 얻는 가장 좋은 방법은 다음과 같습니다.
find -D tree /fullpath/to-dir/
(또는 txt 파일로 저장하기 위해)
find -D tree /fullpath/to-dir/ > file.txt
복잡하게 만들지 마십시오. 방금 이것을 사용하고 아름다운 결과를 얻었습니다.
ls -lR /path/I/need
미래의 모든 사람들에게 가장 쉬운 방법은 다음과 같습니다.
du
그러나 각 폴더에 포함 된 내용의 크기도 표시됩니다. awk를 사용하여 폴더 이름 만 출력 할 수 있습니다.
du | awk '{print $2}'
편집-미안, 내 나쁜. 폴더 만 필요하다고 생각했습니다. 미래의 누군가가 어쨌든 필요할 때를 대비하여 여기에 남겨 두십시오 ...
가능한 모든 ls 옵션을 자유롭게 사용할 수 있습니다.
find -type f | xargs ls -1
다음 형식으로 bash 명령을 실행하십시오.
find /path -type f -exec ls -l \{\} \;
다음은 디렉토리 이름을 보여주는 부분 답변입니다.
ls -mR * | sed -n 's/://p'
설명:
ls -mR *
':'로 끝나는 전체 디렉토리 이름을 나열한 다음 해당 디렉토리의 파일을 개별적으로 나열합니다.
sed -n 's/://p'
콜론으로 끝나는 라인을 찾고 콜론을 제거하고 라인을 인쇄합니다
디렉토리 목록을 반복함으로써 디렉토리도 찾을 수 있어야합니다. 여전히 작업 중입니다. xargs를 통해 와일드 카드를 얻는 것은 어려운 일입니다.
ls 디렉토리 끝에 와일드 카드를 추가하면 전체 경로가 적용됩니다. 지금 당신은 이것을 가지고 있습니다 :
$ ls /home/dreftymac/
foo.txt
bar.txt
stackoverflow
stackoverflow/alpha.txt
stackoverflow/bravo.txt
stackoverflow/charlie.txt
대신이 작업을 수행 할 수 있습니다.
$ ls /home/dreftymac/*
/home/dreftymac/.
/home/dreftymac/foo.txt
/home/dreftymac/bar.txt
/home/dreftymac/stackoverflow:
alpha.txt
bravo.txt
charlie.txt
불행히도 이것은 재귀 디렉토리의 전체 경로를 인쇄하지 않으므로 찾고있는 전체 솔루션이 아닐 수도 있습니다.
ls -lR
당신이 찾고 있던 것, 또는 내가 최소한이었습니다. 건배
내가 보는 많은 답변. 이것은 내 것이며, Mac에서 작업하는 경우 매우 유용하다고 생각합니다.
"번들"파일 ( .app , .rtfd , .workflow 등) 이 있다는 것을 확신합니다 . 그리고 Finder의 창을 보면 단일 파일처럼 보입니다. 그러나 그들은 아닙니다. 그리고 $ ls
또는 $ find
디렉토리로 볼 ... 그래서를, 당신은뿐만 아니라 자신의 내용을 나열 필요하지 않는 한, 나를 위해이 작품 :
find . -not -name ".*" -not -name "." | egrep -v "\.rtfd/|\.app/|\.lpdf/|\.workflow/"
물론 이것은 작업 디렉토리에 대한 것이며 다른 번들의 확장명을 추가 할 수는 있지만 항상 /
뒤에 추가하십시오 . 또는가없는 번들 인 경우 다른 확장 프로그램 /
입니다.
오히려 " .lpdf/
"(다국어 pdf)가 흥미 롭습니다 . .pdf
Finder 에는 보통 " "확장자 (!!)가 없거나 없습니다. 이 방법으로 당신은 이것을 위해 (또는 단지 1 개의 파일을 계산합니다) pdf
많은 것들이 아닙니다 ...
디렉토리가 상대 경로로 전달 된 경우 find를 호출하기 전에 디렉토리를 절대 경로로 변환해야합니다. 다음 예제에서 디렉토리는 스크립트에 첫 번째 매개 변수로 전달됩니다.
#!/bin/bash
# get absolute path
directory=`cd $1; pwd`
# print out list of files and directories
find $directory
tar cf - $PWD|tar tvf -
느리지 만 재귀 적으로 작동하며 디렉토리와 파일을 모두 인쇄합니다. 다른 모든 정보 / 디렉토리없이 파일 이름을 원하면 awk / grep으로 파이프 할 수 있습니다.
tar cf - $PWD|tar tvf -|awk '{print $6}'|grep -v "/$"
@ ghostdog74 : 솔루션에 약간의 조정.
다음 코드는 전체 절대 경로로 파일을 검색하는 데 사용할 수 있습니다.
sudo ls -R / | awk '<br/>
/:$/&&f{s=$0;f=0}<br/>
/:$/&&!f{sub(/:$/,"");s=$0;f=1;next}<br/>
NF&&f{ print s"/"$0 }' | grep [file_to_search]
파일 이름을 알고 있었지만 디렉토리도 원했습니다.
$ PWD 찾기 | fgrep 파일 이름
Mac OS 10.12.1에서 완벽하게 작동
'Programing' 카테고리의 다른 글
List에서 요소를 제거하려고 할 때 UnsupportedOperationException이 발생하는 이유는 무엇입니까? (0) | 2020.02.18 |
---|---|
앵커 링크를 클릭 할 때 부드러운 스크롤 (0) | 2020.02.18 |
HTML 입력 =“파일”CSV (Attribute File Type) 수락 (0) | 2020.02.17 |
Java에서 숫자에 선행 0을 추가 하시겠습니까? (0) | 2020.02.17 |
왜 조각 대신 활동 대신 조각을 사용해야합니까? (0) | 2020.02.17 |