絶対パスにワイルドカード文字を使用してファイルを生成する

絶対パスにワイルドカード文字を使用してファイルを生成する

絶対パスで正規表現を使用しようとしています。例えば

mkdir /root/.mozilla/firefox/*.default/test

.default で終わるフォルダ名は動的に生成されますが、常に .default で終わります。 *.default を試しましたが動作しません。

絶対パスに正規表現を使用できますか?

答え1

mkdir /root/.mozilla/firefox/*.default/test

testディレクトリがまだ存在しない場合、これはどれとも一致しません(したがって、mkdirアスタリスクのあるパスが表示され、エラーが発生する可能性があるか、設定によってはシェルが失敗したglobで別の操作を実行します)。

既存のディレクトリを一致させ、その中に別のディレクトリを作成するには、次の手順を実行する必要があります。

(cd /root/.mozilla/firefox/*.default/ && mkdir test)

または

for d in /root/.mozilla/firefox/*.default/ ; do 
    mkdir "$d"/test
done

最初は、globが1つのディレクトリにのみ一致すると仮定します。さらに多くの場合、結果はシェルとそのバージョンによって異なります。 2番目は、testglobと一致するすべてのディレクトリにディレクトリを作成する必要があります。

答え2

私が正しい場合は、次のコマンドでこれを実行できます。

mkdir "$(ls -d /root/.mozilla/firefox/*.default)"/test

関連情報