フォルダ内のすべてのサブディレクトリを繰り返しますか?

フォルダ内のすべてのサブディレクトリを繰り返しますか?

各フォルダの相対パスを印刷する必要があります。

フォルダ構造は

ここに画像の説明を入力してください。

単一を使用してこれを行う方法はありますか?~のためループの絶対パスを印刷できます。

出力:-

image_script
image_script/artifactory
image_script/artifactory/charts
image_script/artifactory/charts/postgressql
image_script/artifactory/charts/postgressql/templates
image_script/artifactory/templates

よろしくお願いします! ! ! !

答え1

あなたは試すことができます

find `pwd` -type d

または、pwdをフォルダの絶対パスに置き換えます。

答え2

最上位ディレクトリからimage_scriptすべてのディレクトリのパス名を取得するには、次の手順を実行します。

find image_script -type d

image_scriptこれにはディレクトリ自体が含まれます。

得るために純粋なパス名、つまりで始まるパス名は、/コマンドラインからディレクトリへのフルパスを指定します。image_scriptfind

find images_script -depth -type d深さ優先順にパス名を取得するために使用されます。

そしてbash

shopt -s globstar
printf '%s\n' image_script/**/

パス名を一致させるためにシェルglobstarオプションを使用できます。これにより、次のパスを含むすべてのディレクトリパス名が出力されます。これを防ぐには:**//

shopt -s globstar
for pathname in image_script/**/; do
    printf '%s\n' "${pathname%/}"
done

答え3

あなたはそれを使用することができますそれのために。

$ tree -d -f -i /path/to/root_folder

-d目次のみを印刷してください。

-fフルパスを前に追加します。

-iインデントラインを印刷しないために使用されます。

フィンの水泳選手

答え4

ループを使用するのがfor最善の選択ではないかもしれませんfind。以下を使用することをお勧めします。

cd /PATH/TO/image_script/..
find image_script -type d

絶対パスが必要な場合に使用できます

find /PATH/TO/image_script -type d

関連情報