58

Linux では、cp コマンドで --parents オプションを使用できるので、

cp --parents test/withintest/go.rb test2

http://www.gnu.org/software/coreutils/manual/html_node/cp-invocation.html

Mac では、このオプションを利用できません。Macでこれを行う方法はありますか?このオプションが利用できないのはなぜですか?

PS。--parents の目的は次のとおりです。

'--parents' ターゲット ディレクトリにスラッシュと指定されたソース ファイルの名前を追加して、各宛先ファイルの名前を形成します。

cp に指定する最後の引数は、既存のディレクトリの名前でなければなりません。

たとえば、次のコマンド:

      cp --parents a/b/c existing_dir 

ファイル a/b/c を existing_dir/a/b/c にコピーし、不足している中間ディレクトリを作成します。

4

7 に答える 7

87

これもかなり悩みました。これを回避するには、rsync を使用します。

rsync -R test/withintest/go.rb test2

と同じ効果がcp --parentsあり、OS X には rsync が標準装備されています。

于 2012-12-13T07:49:48.437 に答える
17

dittoMac OS X では次のコマンドを使用できます。

基本形

ditto <src-path> <dst-path>

あなたが望むことをします。他にもたくさんのオプションがあります - man ページをチェックしてください。

于 2013-05-21T13:54:15.187 に答える
6

MacPortscpを使用して GNU バージョンをインストールできます。

MacPorts をインストールしたら、coreutils パッケージをインストールできます。

sudo port install coreutils

次にcp、コマンドのlsdateに:catg

gcp --parents test/withintest/go.rb test2

これらの GNU バージョンをデフォルトで使用する場合は、GNU ビンを追加してパスを更新できます。以下を に追加します~/.bash_profile

export PATH="/opt/local/libexec/gnubin:$PATH"
于 2016-11-04T20:26:36.210 に答える
3

私はrsyncを使用しましたが、私がしたことは次のとおりです。

rsync -R dir/**/file.json destination

于 2020-11-09T10:22:52.780 に答える