パスを保持する複数のファイルを置き換える

パスを保持する複数のファイルを置き換える

ディレクトリがありますそして第二。それぞれに異なるディレクトリが含まれていますプロジェクト.json中。ただプロジェクト.jsonファイルはディレクトリに保持されるため、ディレクトリをコピーして貼り付けることはできません。

ㅏ:

./path/Item A/item.json
./path/Item B/item.json
...
./path/Item Z/item.json

第二:

./new/Item A/item.json
./new/Item B/item.json
...
./new/Item Z/item.json

./path/どのitem.jsonファイルを適切なフォルダにコピーするのですか./new

私の解決策:

ディレクトリのインポート

ls -l ./path | grep "^d" | cut -d' ' -f 16

その後、結果を次のように使用できます。

for i in `ls -l ./path | grep "^d" | cut -d' ' -f 16`; echo "Dir: $i"; done

だから私はcp彼らと一緒にできるように

for i in `ls -l ./path | grep "^d" | cut -d' ' -f 16`; cp "$i/item.json" "../new/$i/item.json" ; done

この解決策は大丈夫ですが、よりエレガントな方法があると確信しています。

ベストアンサー1

次の行が役に立ちます。

$ find ./path/ -type f -exec bash -c 'cp $0 ${0/path/new}' {} \;

ここでは、コマンドはディレクトリ内のすべてのテキストファイルをfind検索します。./path/ファイルが見つかったら、/new/単に文字列をtoに置き換える小さなbashスクリプトを呼び出して、pathファイルをターゲットディレクトリにコピーしますnew

おすすめ記事