1

次のように、現在のディレクトリとは異なる別のサブディレクトリにファイルをバックアップしたい:

cp /aaa/bbb/ccc/ddd/eeee/file.sh /aaa/bbb/ccc/ddd/eeee/file.sh.old

ご覧のとおり、ソース ディレクトリと宛先ディレクトリの両方が同じであるため、共通ディレクトリに変更し、 im のコピーを実行し./てから、元のディレクトリに戻すというのが一般的な規則です。

この状況でコピーを実行する単一行のコマンドはありますか?

4

1 に答える 1

2

はい。これを使って:

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トリックを使用しているだけです。

于 2013-02-06T21:00:01.500 に答える