「cp:省略ディレクトリ」とはどういう意味ですか?


408

次のコマンドを発行しました。

sudo cp ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/

これを行うと、次のメッセージが表示され始めます。

cp: omitting directory `Tag' 
cp: omitting directory `Test' 
cp: omitting directory `Text' 
cp: omitting directory `TimeSync' 
cp: omitting directory `Tool' 
cp: omitting directory `Translate' 
cp: omitting directory `Uri' 
cp: omitting directory `Validate' 

等々...

これらのメッセージが表示されるのはなぜですか?

回答:


536

デフォルトでcpは、ディレクトリ内のサブディレクトリではなく、直接ファイルのみをコピーします。メッセージcp: omitting directory 'directory'は、言及されたディレクトリがコピーされないことを警告します。

そのためには、-r(または--recursive)オプションを指定します。

sudo cp -r ~/Transfers/ZendFramework-1.11.4-minimal/library/Zend/* ~/public_html/cmsk.dev/library/

マニュアルページ(コマンドは:man cp)利用可能なオプションの概要が含まれています。


2
どうもありがとう。私は*が何らかの形で再帰的にそれを処理すると思った。しかし、ありません。:Dどうもありがとう。:)
MEM

11
@MEM:は*、ではなくBashによって展開されcpます。echo コマンドの前に配置して、自分でテストしてください。展開されると、前にあるすべて...library/Zend/のファイル(その中のファイルとディレクトリ)に一致します。
-Lekensteyn

良いニュースは、omitting directory 'directory'それがそのディレクトリを削除しているという意味ではありません。
ビシュワスミシュラ

私は私がして、ユーザからの許可を得て.soが別のユーザーの内容をコピーしようとしていた@Lekensteyn chmod a+rx ~/私がコピーしようとした後cp /home/2110/* /home/2111/、それは許可拒否されたというエラーを生成します。私が間違っていた場所。重複した質問をすることができないため、コメントして申し訳ありません。迅速な返信を希望:)
ジャシンスプレムクマール

@jasinthpremkumarファイルの/home/2110所有者はユーザー2110ですが、ファイルの所有者は2111が所有する/home/2111ことになっています。所有者を設定するには、のようなものを使用しますsudo chown -R 2111 /home/2111
-Lekensteyn

40

メッセージは、cpリストされているディレクトリがコピーされていないことを意味します。これは、デフォルトの動作です。cp明示的に指定するか、を使用するかに関係なく、ファイルのみが正常にコピーされます*。ディレクトリのコピーが必要な場合-rは、「再帰的」を意味するスイッチを使用します。


16

ここで確認する必要のあるもの:

  1. 使用しないでくださいsudo。あなたはそれを必要としません、あなたはすでにあなた自身のホームディレクトリにものを書く許可を持っています。

  2. メニューから[隠しファイルの表示/表示]を選択すると、グラフィカルファイルマネージャーで隠しファイルとディレクトリを簡単に表示できます。またはCtrl- を押しHます。

  3. コマンドで-Rオプションを使用してcp、ディレクトリとその内容をコピーする必要があります。

  4. / homeはホームディレクトリではありません。/ home / usernameは。したがって、おそらく間違った場所からコピーしようとしています。

  5. シェルでは大文字と小文字が区別されるため、〜/ downloadsと〜/ Downloadsは異なるものです。


2

次のようなディレクトリをコピーする場合:

cp dir1 copy_of_dir1

コピーするのはdir1自分自身だけであり、その中のファイルはコピーしないため、最終的には、構造が存在しない間に新しいディレクトリ構造が作成されます。

それがコピーされた後、他の言葉で、それは私の内容があることを言うだろうfile1file2など、。ただし、これらのファイルはコピーされていないため、存在しません。

したがってcp、デフォルトで発生する可能性のあるこの問題を解決するために、-rすべてのファイルを再帰的にコピーするオプションを指定しない限り、ディレクトリをコピーせずにスキップします。


1

それが言う理由がomitting directoryあるためであるcpと、すべてのファイルをコピーするために開始する前に、コピーするファイルとサブディレクトリのリストを作成し、私の知っていることを、ユーティリティをコピーします。とき--recursiveのオプションが欠落している、サブディレクトリには、このリストをオフにぶつけます。そのため、省略とは、ソースメディアからではなく、コピーリストからの削除を指します。これはメッセージの意味に対応していると思います。


0

CPのあなたは、あなたが追加することができ、ネストディレクトリをコピーしたい場合は、コマンドは、ファイルやディレクトリではなく、ネストされたディレクトリをコピーするために使用される-r -r再帰意味し、その後。

従うことができる構文(ルートとして実行):

cp -r /source/dir/* /destination/ 

または

cp --recursive /source/dir/* /destination/

-1

「タグ」と「テスト」の2つのディレクトリがあるとします

「タグ」ディレクトリを「テスト」ディレクトリにコピーする場合は、コマンドを使用します

$ : cp -r Tag Test (case sensitive)

ほとんどの場合、問題は上記のコードで解決され、そうでない場合は次のようなメッセージが表示されます

cp: omitting directory `Tag' 
cp: omitting directory `Test'

次に、「Tag」ディレクトリにいくつかのファイルを追加し、それらを「Test」にコピーします。実際、私は同じ問題を抱えていますが、2番目に言ったように解決しました。

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