タグ付けされた質問 「cp」

cp-ファイルをコピーするコマンドラインツール

6
cpを使用してfolder等な方法でフォルダを再帰的にコピーする方法は?
使用するとき cp -R inputFolder outputFolder 結果はコンテキスト依存です: outputFolder存在しない場合は作成され、クローンフォルダのパスはになりますoutputFolder。 場合outputFolderが存在する場合、作成されたクローンは次のようになりますoutputFolder/inputFolder インストールスクリプトを作成したいので、これは恐ろしいことです。ユーザーが誤って2回実行した場合outputFolder、最初に作成され、2回目の実行ですべてのものがもう一度作成されoutputFolder/inputFolderます。 常に最初の動作が必要です:オリジナルの隣に(兄弟として)クローンを作成します。 cpポータブルにしたい(たとえば、MINGWはrsync出荷されていない) 私はチェックしましたcp -R --parentsが、これはディレクトリツリーのすべての方法でパスを再作成します(したがって、クローンは作成されませんoutputFolderがsome/path/outputFolder) --remove-destinationまたは--update、2が何も変更しない場合でも、物事はコピーされますoutputFolder/inputFolder outputFolder(フォルダが存在しない場合は...)の存在を最初に確認せずにこれを行う方法はありますrm -rf outputFolderか? 合意された移植可能なUNIXの方法は何ですか?
46 cp  recursive 

2
cp -L対cp -H
問題 cp -Hまたはcp -Lでファイルをコピーすると、同じ結果が得られます。 $ ls -l fileA fileA -> fileB $ cp fileA somewhere/ -H $ ls -l somewhere/ fileA # fileA is a copy of fileB, only renamed, with same properties! ここでのこの回答では、両方のオプションを、と組み合わせて使用​​される同様のUNLESSとして説明します-R。私ではありません。ソフトリンクされたハードリンクファイルは、ソースでポイントするファイルの名前が変更されたコピーになります。 質問: cp -Hand の適切な使用法は何cp -Lですか?これは予想される動作ですか? 私の解決しようとする試み: man cp両方のオプションでまったく同じことを教えてくれますが、info cp「」の言葉遣いはそれをさらに混乱させます。多分これを少し分解するのを手伝うことができます: -H コマンドライン引数がシンボリックリンクを指定する場合、シンボリックリンク自体ではなく、それが指すファイルをコピーします。ただし、再帰トラバーサルを介して検出されたシンボリックリンクをコピー(その性質を保持)します。 これは私には矛盾のように聞こえます:シンボリックリンクの性質 «は、それがどこかを指しているということだと思います… -L, --dereference シンボリックリンクからコピーする場合は、シンボリックリンクに従ってください。このオプションでcpは、シンボリックリンクを作成できません。たとえば、ソースツリーの(通常のファイルへの)シンボリックリンクは、宛先ツリーの通常のファイルにコピーされます。 …

2
シンボリックリンクをコピーするにはどうすればよいですか?
1つのディレクトリ内のファイルへのシンボリックリンクがあります。同じリンクを別のディレクトリに入れたいです。シンボリックリンクをコピーするにはどうすればよいですか? シンボリックリンクをcpしようとしましたが、これはシンボリックリンク自体ではなく、それが指すファイルをコピーします。
41 centos  symlink  cp 

12
大きなファイル(〜20 GB)をコピーするためのcpの高速な代替手段はありますか?
私は大学院生であり、私が働いているグループはLinuxクラスターを維持しています。クラスターの各ノードには独自のローカルディスクがありますが、これらのローカルディスクは比較的小さく、自動バックアップは装備されていません。そのため、グループは多くのTBのストレージスペースを持つファイルサーバーを所有しています。私は比較的Linuxに慣れていないので、速度、ネットワーク機能などの点でファイルサーバーの仕様がわからない。ローカルディスクがI / Oの点でファイルサーバーよりもかなり高速であることは経験から知っている。約十数人がファイルサーバーを使用しています。 cp〜20 GBのファイルをファイルサーバーからローカルディスクの1つにコピーするために使用するには、平均で約11.5分かかります(によればtime)。cp(1)timeそのようなコピーのシステム時間は約45秒であるため、この操作はあまり効率的ではないことを知っています。(2)topコピー中に調べると、%CPUは非常に低いため(検査により、平均で約0〜10%)。 cpローカルディスク上の1つのフォルダーから同じローカルディスク上の別のフォルダーに同じ〜20 GBのファイルをコピーするために使用すると、時間がかかりません-リアルタイムで約9分(システム時間では〜51秒time)。そのため、ファイルサーバーは予想どおりローカルディスクよりも多少遅くなりますが、おそらくそれほど遅くありません。ローカルから同じローカルへのコピーが9分より速くないことに驚いています。 ファイルサーバーからローカルディスクの1つに、最大200個の大きなファイル(それぞれ20 GB以下)をコピーする必要があります。だから、私の質問は次のとおりですcp。Linuxで大きなファイルをコピーするためのより高速な代替手段はありますか? (または、cpコピーを高速化するために使用できるフラグがありますか?)このコピー時間を何らかの形で削ることができたとしても、それは非常に役立ちます。 新しい高速のハードウェアディスクを購入することは確かですが、そのようなリソースにアクセスすることはできません。私はシステム管理者でもありません-私は(初心者)ユーザーでしかありません-そのため、ディスクの負荷に関するより詳細な情報にアクセスすることはできません。毎日約12人がファイルサーバーを使用していますが、この特定のノード/ローカルディスクを使用しているのは私だけです。
40 cp  file-copy 

5
ハードリンクを保持してディレクトリをコピーする方法は?
共通のファイルがあるディレクトリを別のパーティションに移動する方法は? /mnt/Xハードリンクでファイルを共有するディレクトリでパーティションがマウントされていると仮定しましょう。そのようなディレクトリを別のパーティションに移動する方法は、/mnt/Yそれらのハードリンクを保存することです。 「ハードリンクとファイルを共有するディレクトリ」とはどういう意味ですか? # let's create three of directories and files mkdir -p a/{b,c,d}/{x,y,z} touch a/{b,c,d}/{x,y,z}/f{1,2,3,4,5} # and copy it with hardlinks cp -r -l a hardlinks_of_a 具体的には、ファイルの合計サイズが10Gで、各ファイルに10個のハードリンクがあると仮定します。問題は、10Gを使用して宛先に移動する方法です(100Gでコピーしてから重複排除を実行することについて誰かが言うかもしれません-私が尋ねているものではありません)
40 files  cp  hard-link 

3
フォルダー自体なしでフォルダーからファイルをコピーする方法
私はからのファイルとサブフォルダをコピーしようとしていなくて、フォルダAそのもの。たとえば、フォルダは次が含まれます。 | file1.txt | file2.txt | subfolder1 次のコマンドを実行すると、間違った結果が得られます。 sudo cp -r /home/username/A/ /usr/lib/B/ 結果は /usr/lib/B/A/...copied files... の代わりに.. /usr/lib/B/...copied files... origin-folderなしで期待されるものに到達するにはどうすればよいですか
39 bash  command-line  cp 

4
ファイルの内容を解凍しますが、アーカイブフォルダーは作成しません
多くのディレクトリやファイルなどを含むファイルmyarchive.zipがあります。このmyarchive.zipファイルが「b」というディレクトリにあるとします。さて、「unzip myarchive.zip」コマンドを使用すると、システムはデフォルトで「myarchive」というディレクトリを作成し、zipファイルの内容を保存します。私はないないシステムは、この「ます。MyArchive」ディレクトリを作成したい-私はちょうど内容が「B」ディレクトリに解凍することにしたいです。これは可能ですか? 私が今やっているのは、単に「cp」コマンドを発行して、新しく作成したディレクトリ(この場合は「myarchive」から「b」)にファイルをコピーしたい場所にコピーすることです。
37 cp  zip 


6
既存のファイルを静かに上書きするように「cp」が設計されたのはなぜですか?[閉まっている]
cp次のコマンドでテストしました。 $ ls first.html second.html third.html $ cat first.html first $ cat second.html second $ cat third.html third 次にコピーfirst.htmlしsecond.htmlます: $ cp first.html second.html $ cat second.html first ファイルsecond.htmlはエラーなしで静かに上書きされます。ただし、同じ名前のファイルをドラッグアンドドロップしてデスクトップGUIで実行すると、first1.html自動的に接尾辞が付けられます。これにより、既存のファイルが誤って上書きされるのを防ぎます。 cpファイルを静かに上書きするのではなく、なぜこのパターンに従わないのですか?
30 cp  history 

4
GNU cpおよびmvの-Tオプションの付加価値は何ですか?
一部のGNU Coreutilsコマンドに-T/--no-target-directoryオプションがあるのはなぜですか?.従来のUnixディレクトリ階層の(自己ドット)のセマンティクスを使用して、それが行うすべてのことを達成できるようです。 考慮: cp -rT /this/source dir この-Tオプションは、コピーがdir/sourceサブディレクトリを作成しないようにします。むしろ/this/sourceと識別されdir、コンテンツはそれに応じてツリー間でマッピングされます。そのため、たとえばにではなく、に/this/source/foo.c進みます。dir/foo.cdir/source/foo.c ただし、次の-Tオプションを使用しなくても簡単に実現できます。 cp -r /this/source/. dir # Probably worked fine since dawn of Unix? 意味的には、末尾のドットコンポーネントはの子としてコピーされますdirが、もちろん「子」は既に存在するため(作成する必要はありません)、実際はdirそれ自体なので、効果はで/this/path識別されdirます。 現在のディレクトリがターゲットの場合は正常に機能します。 cp -r /this/tree/node/. . # node's children go to current dir あなたが行うことができます何かがあるだけで-Tその存在を合理化することができ、それは?(ドットディレクトリを実装していないオペレーティングシステムのサポートに加えて、ドキュメントに記載されていない理論的根拠。) 上記のドットトリックは、GNU Infoドキュメントで言及されているのと同じ競合状態を解決しません-Tか?
26 cp  coreutils 


6
試行に失敗した後に残りのファイルをcpする方法
あるドライブから別のドライブに大きなディレクトリをコピーしようとしています。終了する前に誤ってログアウトしたため、ファイルの80%しかコピーされませんでした。ゼロから始めずに残りのファイルをコピーする方法はありますか?
23 cp 

1
通常のファイル 'filename'を作成できません:ファイルが存在します
ビルドスクリプトの1つでこの奇妙なエラーメッセージが表示されています- cp失敗し、「ファイルが存在します」というエラーを返します。を使用してみましたがcp -f、ファイルが存在する場合は上書きするはずですが、エラーが表示されます。cp手動で実行すると、既存のファイルを上書きするために実行すると完全に機能します。このエラーの原因は何ですか?
23 cp  concurrency 

2
複数の拡張子を持つファイルをコピーする
複数の拡張子を持つファイルを単一の宛先ディレクトリにコピーしたいと思います。 たとえば、次のコマンドを使用して、作業ディレクトリ内のすべての.txtファイルをというディレクトリにコピーできますdestination。 cp -v *.txt destination/ そして、以下を使用して、作業ディレクトリ内のすべての.pngディレクトリをにコピーできますdestination。 cp -v *.png destination/ ただし、これらを個別のコマンドとして入力するのは時間がかかります(コマンド履歴を使用する場合でも)。だから、私が言うことができることをどのような方法があるcpパターンのいずれかでファイルをコピーする*.txt か、パターン*.pngにはdestination? 理想的には、3つ以上のパターンを指定できるようにしたいと考えています。たとえば、cpすべて*.txt または *.png または *.jpgファイルをにコピーするように指示するdestinationなどです。 これはすべて、シェルスクリプトを使用して可能になると確信しています(bashたとえば、を使用しています)が、コンソールからのみ、より簡単に実行する方法はありますか?何とかしてブレース拡張を使用してそれを行うことはできますか? 特定の特定のパターンに一致するファイルを除く、作業ディレクトリ内のすべてのファイルをコピーできることは知っていますが、作業ディレクトリには、コピーしたくないファイル拡張子がはるかに多く含まれているため、苦労します。 これについて何か考えはありますか?
22 bash  shell  wildcards  cp 

4
ハードリンクを使用したcpの動作に驚いた
私はハードリンクの概念を非常によく理解しており、cp---そして最近のPOSIX仕様---のような基本的なツールのマニュアルページを何度も読みました。それでも、私は次の動作を観察して驚いた: $ echo john > john $ cp -l john paul $ echo george > george この時点johnでpaul、同じiノード(およびコンテンツ)を持ちgeorge、両方の点で異なります。今私たちは: $ cp george paul この時点で、私は期待georgeとpaul異なるinode番号が、同じ内容---この期待が満たされたを持っている---しかし、私はまた、予想paul今から別のinode番号を持っているjohnとのために、johnまだコンテンツを持っていますjohn。これは私が驚いた場所です。ファイルをコピー先パスにコピーすると、paulその同じファイル(同じiノード)を、iノードを共有する他のすべてのコピー先パスにインストールする結果にもなりますpaul。cp新しいファイルを作成し、以前は古いファイルで占められていた場所に移動することを考えていましたpaul。代わりに、既存のファイルを開きpaul、切り捨てて、書き込むことですgeorgeのコンテンツを既存のファイルに追加します。したがって、同じiノードを持つ「その他」のファイルは、「それらの」コンテンツを同時に更新します。 わかりました、これは体系的な動作であり、それを期待することがわかったので、必要に応じて回避方法を利用したり、利用したりできます。この動作が文書化されるのを見るはずだったのは、私にとって何が困ったことですか?私がすでに見た文書のどこかに文書化されていない場合、私は驚くでしょう。しかし、どうやら私はそれを見逃したようで、この振る舞いについて議論するソースを見つけることができません。
20 cp  hard-link 

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