ディレクトリを繰り返し、各ディレクトリに特定の種類のファイル名を含むテキストファイルを作成します。

ディレクトリを繰り返し、各ディレクトリに特定の種類のファイル名を含むテキストファイルを作成します。

各サブディレクトリで文字Sで始まるすべての.mp4ファイルを見つけ、各サブディレクトリのテキストファイルへのフルパスで一覧表示しようとしています。

for f in ./*;  do  (cd “$f”; printf "file ‘$PWD/%s’\n” S*.mp4>mylist.txt ); done;

しかし、それは私にのみ当てはまります。

>

私がここで何を見逃しているのでしょうか?

答え1

サブディレクトリ名をというファイルに入れて、ループ内のnames.txtコマンドを使用します。find

#!/bin/bash

cd  parent_directory
ls -d */ >names.txt

for i in $(cat names.txt); do
    cd ${i}
    find $PWD -type f -name "S*.mp4" > outputfile.txt

    cd ..   
done

関連情報