ricecaker
@ricecaker

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

cpコマンドでコピー先の指定にコピー元のディレクトリ指定を引用する方法はありますか?

解決したいこと

cp dirA/dirB/fileA dirA/dirB(この部分をfileAの指定から引用したい)/fileB

発生している問題・エラー

とくになし

自分で試したこと

なし

0

3Answer

方法1:共通部分を変数に入れる

dir=dirA/dirB
cp "$dir/fileA" "$dir/fileB"

方法2:ブレース展開を使う

cp dirA/dirB/{fileA,fileB}

ブレース展開は単語の途中に {} を書くとスペース区切りの単語の並びに展開される記法で、たとえば X A{1,2,3}B YX A1B A2B A3B Y になります。 "A{1,2,3}B" のようにクオートの中では展開されませんが、 "A"{1,2,3}"B" のようにクオートと裸のブレースをつなげて書けば展開されます。よってディレクトリ名にスペースを含む場合は cp "dir A/dir B/"{fileA,fileB} と書いてください。

0Like

知識として知りたいのであれば、

cp --help
man cp

で機能があるか調べてください。

実務で頻繁に利用する必要があれば、

cp
#!/bin/sh
in01=$1
in02=$2
in03=$3

IFS='/'
set $in01
....
set $in02
....
/bin/cp $parm  $inDir  $outDir

お好みのシェルを作成しましょう!
パスも通してね!

0Like

Your answer might help someone💌