• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ディレクトリをコピーするツールを作ってますけど、うまくいきません。)

ディレクトリコピーするツールがうまくいかない!助けてください!

このQ&Aのポイント
  • ディレクトリコピーするツールがうまくいかないので、教えてください!指定ディレクトリに「~/???.tmp」および「~/???」というディレクトリをコピーするツールを作成しています。また、指定ディレクトリから2階層下にある「aaa」ディレクトリ直下のディレクトリを対象としています。コピーしたディレクトリを表示するため、コピー先ディレクトリにコピーされたディレクトリが表示されることを期待しています。
  • ディレクトリコピーするツールがうまくいかない!助けてください!指定ディレクトリに「~/???.tmp」と「~/???」のディレクトリをコピーするツールを作成しています。また、指定ディレクトリから2階層下の「aaa」ディレクトリ直下のディレクトリを対象にしています。コピーしたディレクトリを表示するため、コピー先ディレクトリにコピーされたディレクトリが表示されることを期待しています。
  • ディレクトリコピーするツールがうまくいかない!助けてください!ディレクトリコピーするツールを作成していますが、うまくいきません。指定ディレクトリに「~/???.tmp」と「~/???」というディレクトリをコピーし、指定ディレクトリから2階層下にある「aaa」ディレクトリ直下のディレクトリを対象にしています。コピーしたディレクトリを表示するため、コピー先ディレクトリにコピーされたディレクトリが表示されることを期待しています。助けていただけると幸いです!

質問者が選んだベストアンサー

  • ベストアンサー
  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.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}" (以下略) あと、スペース等の記号の入ったディレクトリがあると、誤動作しそうですね。

win1010
質問者

お礼

ありがとうございました。 for分は参考になりました。 kmeeさん、また質問するかもしれません、よろしくお願いします!

関連するQ&A