次のファイル階層があります。
dir
├── dirA
│ └── snapshot
│ └── subdir1
│ └── file1
└── dirB
└── snapshot
└── subdir2
└── file2
各スナップショット/サブディレクトリディレクトリからファイルを移動したいのですが、スナップショットの親ディレクトリを1つのコマンドで実行します。それは次のようになります:
dir
├── dirA
│ └── file1
│ └── snapshot
│ └── subdir1
└── dirB
└── file2
└── snapshot
└── subdir2
私はもう試した mv dir/*/snapshot/*/* ../../
しかし、宛先部分以降../../
は、明らかに機能しない作業ディレクトリを基準にしています。
Bashコマンドで可能ですか(bashスクリプトを1行も記述したことがないため)?
@Don_Christの鋭い観察に基づいて、この回答は編集され、サブシェルが保存されました。
for i in dir/*/snapshot; do
mv "$i"/*/* "$i"/..
done