次のように、現在のディレクトリとは異なる別のサブディレクトリにファイルをバックアップしたい:
cp /aaa/bbb/ccc/ddd/eeee/file.sh /aaa/bbb/ccc/ddd/eeee/file.sh.old
ご覧のとおり、ソース ディレクトリと宛先ディレクトリの両方が同じであるため、共通ディレクトリに変更し、 im のコピーを実行し./
てから、元のディレクトリに戻すというのが一般的な規則です。
この状況でコピーを実行する単一行のコマンドはありますか?
はい。これを使って:
cp /aaa/bbb/ccc/ddd/eeee/{file.sh,file.sh.old}
中括弧を使用すると、文字列の最初の部分が、コンマで区切られた各項目で再利用されます。Bashは、上記を2つの別々のパスに拡張し、それをに渡すものcp
です。Bashが何に渡されるかを確認するには、先頭にをcp
追加するだけです。echo
echo cp /aaa/bbb/ccc/ddd/eeee/{file.sh,file.sh.old}
これにより、元のステートメントが生成されます。
cp /aaa/bbb/ccc/ddd/eeee/file.sh /aaa/bbb/ccc/ddd/eeee/file.sh.old
入力を節約するためにBashトリックを使用しているだけです。