※ ChatGPTを利用し、要約された質問です(原文:シンボリックリンクがある場合のスクリプト)
シンボリックリンクがある場合のスクリプト
このQ&Aのポイント
シンボリックリンクがあるディレクトリをコピーする際のスクリプトを教えてください。
cpコマンドでシンボリックリンクがあるディレクトリをコピーすることはできないので、別の方法が必要です。
シンボリックリンクのリストを作成し、それぞれのファイルやディレクトリを別の場所にコピーするようなスクリプトを作成することが可能です。
シェルスクリプトに関して教えてください。
ディレクトリを指定の場所にコピーしたいのですが、
コピーしたいディレクトリ配下に一部シンボリックリンクになっているファイルやディレクトリがあり、その部分のコピーがcpコマンドで出来ません。
シンボリックリンクになっているものは10個ほどと多くなく、そのリンク先もそれぞれわかっている為、
リストを書き出してそのファイル(ディレクトリ)はそれぞれ別の場所にコピーする
ようなことは出来るのでしょうか?
日によってコピー元にシンボリックリンクのファイルがなくコピーしない時もあるので、
コピーするディレクトリ内にシンボリックがあれば、シンボリックリンク先にそのファイルをコピーするような処理です。
簡単に下記にイメージを書きます。
(1)home直下にcopy-motoディレクトリがあった場合、/usr/copy-sakiにコピーする
cd /home
if [ -d copy-moto ] ; then
cp -pr copy-moto/* /usr/copy-saki
echo "copy-sakiにコピーしました"
fi
ここはこんな感じでスクリプトを書きました。
更に(2)の事を追加したいです。
(2)copy-moto配下にhoge1やhoge2,hoge3と多くのディレクトリやファイルがある。
その中でhoge1やhoge2の下にSymbolicXXやSymbolicYYがあった場合、そのファイルやディレクトリはシンボリックリンク先にコピーしたい。
リストで以下のようにシンボリックになっているものは把握している。
そのリスト内にあるものは/usr/copy-sakiではなくhome/Symbolic_link~にコピーしたい的なことをしたいと思っています。
/home/copy-moto/hoge1/SymbolicXX→home/Symbolic_link/SymbolicXX
/home/copy-moto/hoge1/SymbolicYY→home/Symbolic_link/SymbolicYY
/home/copy-moto/hoge2/SymbolicZZ→home/Symbolic_link_AA/SymbolicZZ
/home/copy-moto/hoge2/SymbolicQQ→home/Symbolic_link_AA/SymbolicQQ
この例外処理?のような記載などどのようにスクリプトをかけばいいかわからず…
わかる方いればご教授ください。
お礼
ごちゃごちゃして質問わかりにくくて申し訳ございません。 execコマンドで問題なく出来ました。 ありがとうございます。