- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ディレクトリをコピーするツールを作ってますけど、うまくいきません。)
ディレクトリコピーするツールがうまくいかない!助けてください!
このQ&Aのポイント
- ディレクトリコピーするツールがうまくいかないので、教えてください!指定ディレクトリに「~/???.tmp」および「~/???」というディレクトリをコピーするツールを作成しています。また、指定ディレクトリから2階層下にある「aaa」ディレクトリ直下のディレクトリを対象としています。コピーしたディレクトリを表示するため、コピー先ディレクトリにコピーされたディレクトリが表示されることを期待しています。
- ディレクトリコピーするツールがうまくいかない!助けてください!指定ディレクトリに「~/???.tmp」と「~/???」のディレクトリをコピーするツールを作成しています。また、指定ディレクトリから2階層下の「aaa」ディレクトリ直下のディレクトリを対象にしています。コピーしたディレクトリを表示するため、コピー先ディレクトリにコピーされたディレクトリが表示されることを期待しています。
- ディレクトリコピーするツールがうまくいかない!助けてください!ディレクトリコピーするツールを作成していますが、うまくいきません。指定ディレクトリに「~/???.tmp」と「~/???」というディレクトリをコピーし、指定ディレクトリから2階層下にある「aaa」ディレクトリ直下のディレクトリを対象にしています。コピーしたディレクトリを表示するため、コピー先ディレクトリにコピーされたディレクトリが表示されることを期待しています。助けていただけると幸いです!
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
ようするに、*.tmp が見つかったら、 それから .tmpを取り除いたものもコピーすればよいのですね。 if [[ $copydir -eq 1 ]] then cp -r "$a" "${path2}" echo "cp" "${a#*/}" # aから.tmpを取り除く a0="${a%.tmp}" if [[ -d "$a0" ]] then cp -r "${a0}" "${path2}" echo "cp" "${a0#*/}" fi else ( 以下略 ) 以下余談にはなりますが、深さが決まってるなら、わざわざfind使うまでもないような (対象がないとエラー表示はされるけど) for d in "$1"/*/*/aaa do if [[ \! -d "$d" ]] ; then contiune ; fi for a in "$d"/* do if [[ \! -d "$a" ]] ; then contiune ; fi if [[ $copydir -eq 1 ]] then cp -r "$a" "${path2}" (以下略) あと、スペース等の記号の入ったディレクトリがあると、誤動作しそうですね。
お礼
ありがとうございました。 for分は参考になりました。 kmeeさん、また質問するかもしれません、よろしくお願いします!