私と同じシェルモードでは、{abc,def}xyz
それを使用してまだ存在していないファイル(またはディレクトリ)を作成できます。
$ ls
$ touch {abc,def}xyz
$ mkdir 123{a,b,c}
$ ls
123a 123b 123c abcxyz defxyz
私を混乱させることは、パターンに一致する各フォルダセット内にサブディレクトリを作成する方法です。たとえば、今123a
、123b
、 があるので、123c
明示的にリストせずに各ディレクトリ内にサブディレクトリを作成できますか?
$ mkdir {12*}/rsnapshot # Fails because 12* isn't a list
$ mkdir 12*/rnapshot # Fails because 12*/rsnapshot doesn't exist
$ mkdir 123{a,b,c}/rsnapshot # Succeeds but more complex than I'd like
最後の例は機能しますが、サブセクションに各ディレクトリ名の特定の部分をリストする必要があります{...}
。ディレクトリ数が多いと不可能です。
空白のない単純な名前にもこの行を適用しましたが、一般的なソリューションでは明確でもエレガントでもありません。
echo -n 12* '' | xargs -r -d ' ' -I {} echo mkdir {}/rsnapshot
bash
繰り返しなしで同様の名前のサブディレクトリセットにファイルまたはサブディレクトリを作成できるパターンテンプレートはありますか?
ベストアンサー1
前のコマンドパラメータをもう一度呼び出すだけです。!$
mkdir 123{a,b,c}
mkdir !$/rsnapshot
パターンで指定されたディレクトリ名内にサブディレクトリを作成するために find を使用しない場合サイクル。
find . -maxdepth 1 -type d -name "123*" -exec mkdir '{}/rsnapshot' \;