ループ "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
...

これは私が使用しているレベル構造が正しくないことを意味します。パスの最初の2つのレベルに基づいてファイル名を取得し、それを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

関連情報