루프 "find...-type f": dir/subdir을 통해 파일 이름을 가져오고 dir_subdir_fname.txt라는 txt를 출력합니다.

루프 "find...-type f": dir/subdir을 통해 파일 이름을 가져오고 dir_subdir_fname.txt라는 txt를 출력합니다.

내 데이터 구조는 다음과 같습니다.

dir1/subdir1_level1/subdir1_level2.../subdir1_leveln
dir1/subdir2_level1/subdir2_level2.../subdir2_leveln
...

이것은 내가 사용하고 있는 레벨 구조가 올바르지 않다는 것을 의미합니다. 경로의 처음 두 수준을 기반으로 파일 이름을 가져와서 이를 dirn_subdirn_fname.txt라는 텍스트 파일로 출력하려는 ​​목표를 성공적으로 달성했습니다.

find dir1/subdir1 -type f -printf "%f\n">dir1_subdir1_fname.txt

하지만 여러 디렉터리/하위 디렉터리 목록에 대해 이 프로세스를 반복하는 방법이 있는지 궁금합니다.

편집: 첫 번째 부분을 수행하는 방법을 찾았습니다.

#!/bin/bash

shopt -s dotglob nullglob

topdir= './Dir1'

 for subdir in "$topdir"; do
    find "$subdir" -type f -printf "%f\n"
done

답변1

Kindly try with below script

it will print up to 9 subdirectories  files using find command keyword maxdepth


    for i in {1..9}; do echo "below are files under $i steep afer parent path subdirectory"; find . -maxdepth $i -type f;echo "================================"; done

관련 정보