ディレクトリを変更せずにソースと同じパスにファイルをコピーする

ディレクトリを変更せずにソースと同じパスにファイルをコピーする

どのディレクトリ(たとえば、home)の下に次のパスがあり、~/mydir/subdir/file1コピーしたいとします。ファイル1:

ホームディレクトリでこれを行うことができます。

cp ~/mydir/subdir/file1 ~/mydir/subdir/file2

現在のディレクトリを意味するmydir/subdirように、その部分を再度繰り返す必要がないように、「ソースと同じパスに」を意味するショートカットはありますか?.それとも同じ結果を得る別の方法はありますか?

最初にできることを知っていますが、cd ~/mydir/subdir同じディレクトリに滞在できるようにする単一行ソリューションを探しています。 1つのオプションは変数を使用することですが、多くのコマンドを入力するときにもっとエレガントな方法が必要です。

オンラインで閲覧して検索しましたが、man cpそのオプションが見つかりませんでした。答えが「いいえ」なら大丈夫です。他の人が時間を節約する方法を使用したことを確認したかっただけです。ありがとうございます!

ベストアンサー1

(1)を使用bashし、パスにスペースや改行(2)がないと仮定すると、次のようになります。

cp ~/mydir/subdir1/{file1,file2}

~これはbashによって(拡張とともに)拡張されます。

cp ~/mydir/subdir1/file1 ~/mydir/subdir1/file2

いつものように、次のようにテストできます。echo

echo cp ~/mydir/subdir1/{file1,file2}

コメントによると:

(1)これは他のシェルでも機能します。すべてのシェルをテストする時間はありません。

(2)「興味深い」名前の場合は、tab完成を使用するか(bash適切なエスケープが可能です)、引用符(中括弧ではない)を使用してください。

mv ./"some dir"/{"some name","other id"}

おすすめ記事