隠しファイルのないcp-r


89

2つのディレクトリがあり、1つは空です。

最初のディレクトリには、隠しファイルを含む多くのサブディレクトリがあります。cp -r最初のディレクトリから2番目のディレクトリにコンテンツを追加すると、隠しファイルもコピーされます。それらを回避するための解決策はありますか?


それは実行可能ですが、コピー後にそれらを削除する方が簡単かもしれません
Karoly Horvath

6
ええ、でも私の場合、隠しファイルを他の場所にコピーすることはセキュリティ上の危険です。
Rahul 2012

回答:


127

rsyncを使用できます:

rsync -av --exclude=".*" src dest

1
cpと比較した場合のオーバーヘッドはありますか?
Rahul 2012

2
@Rahulベンチマークを行うことは私には思い
浮かび

3
かっこいい!ありがとう!参考までに、ファイルサイズが大きい場合はrsyncが最適ですが、ファイルが小さい場合はcpと同じになります。
Rahul 2012

26

できるよ

cp -r SRC_DIR/* DEST_DIR

SRC_DIRレベルのすべての.filesと.dirsを除外しますが、それでも次のレベルのサブディレクトリに隠しファイルをコピーします。


6
それはまさに問題です.. :)
Rahul 2012

9
あなたは全体GIT-インデックスをコピーするwan'tていない場合しかし、それは、GITルポのために働く.git / ...
Sedat Kilinc

1
これが私が探していた解決策であるため、私はこの答えを+しました。ツリーの上のすべての非表示を除外するのではなく、ルートレベルの非表示のみを除外します。
l008com 2018年

別のバリアントcp SOURCE/[!.]* TARGET
カレル

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.