フォルダ名を繰り返し探して変数に割り当てる

フォルダ名を繰り返し探して変数に割り当てる

私はフォルダパスにいます。というフォルダがありますdir。中に別のフォルダがありますが、dir名前がわかりません。それを見つけて変数に割り当てる方法。

PS:複数のフォルダでこれを実行したいので、上記のように動作するスクリプトが必要です。

ベストアンサー1

set -- dir/*/

上記の操作を実行すると、パス$1名がdir$22番目のパス名になります。$@のすべてのディレクトリパス名のリストになりますdir

/最後の末尾がdir/*/重要であることに注意してください。それがなければ、通常のファイルの名前を取得することもできます。

たとえば、次のような状況が与えられました。

.
`-- dir
    |-- A
    |   `-- file2
    |-- B
    |   `-- file2
    |-- C
    |   `-- file2
    `-- file1
$ set -- dir/*/

$ echo "$1"
dir/A/

$ printf '%s\n' "$@"
dir/A/
dir/B/
dir/C/

$ myfolder="$1"
$ printf 'My folder is "%s"\n' "$myfolder"
My folder is "dir/A/"

おすすめ記事