私のデータ構造は次のとおりです。
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