하위 디렉터리의 모든 파일 이름 가져오기

하위 디렉터리의 모든 파일 이름 가져오기

file1올바른 경로와 잘못된 경로 등 경로를 제외한 하위 디렉터리에서 모든 파일 이름을 가져와야 합니다 ./folder/file1. 내 사용 사례는 /usr/share/terminfo디렉토리 내에 있는 사용 가능한 모든 terminfo 파일 이름을 검색하는 것입니다. 그러나 이들은 아래와 같이 다른 하위 디렉터리 세트 안에 있습니다.

terminfo ア ls
1  3  5  7  9  A  c  e  f  h  j  l  m  n  o  P  Q  s  u  w  X
2  4  6  8  a  b  d  E  g  i  k  L  M  N  p  q  r  t  v  x  z

terminfo ア cd 1
1 ア ls
1178  1730-lm

1 3파일이 이러한 디렉터리 또는 하위 디렉터리 내에 있는 것을 볼 수 A있으며 각 하위 디렉터리에 모든 파일 이름이 필요합니다. 42 directories, 2720 files전체적으로 수동 프로세스가 너무 많으면 피곤할 수 있습니다 .

답변1

find /usr/share/terminfo -type f -exec basename {} \;

답변2

우리가 원하는 파일 이름이 두 수준 아래에 있고 /usr/share/terminfo그 아래에 다른 디렉터리가 없다는 것을 알고 있으므로 이것이 빠른 해결책이 될 것입니다( find한 번만 수행 cut).

$ find /usr/share/terminfo -type f | cut -d '/' -f 6

또는 sed약간 "무거운" 것으로 교체하십시오.

$ find /usr/share/terminfo -type f | sed 's#^.*/##'

교체는 sed의 각 출력 줄의 마지막 줄까지 모든 것을 제거합니다./find

답변3

1회 사용나무

(렌트리에 대한 세부정보)

tree -i /usr/shar/terminfo

또는 디렉터리를 삭제하려면 다음을 수행하세요.

tree -iF /usr/shar/terminfo | grep -v /

2 사용엘에스

ls -R /usr/share/terminfo  | grep -v /
ls /usr/share/terminfo/*/* | grep -o '[^/]*$'

basename -a $(ls /usr/share/terminfo/*/*)

관련 정보