web-dev-qa-db-ja.com

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

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

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' 

等々...

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

402
MEM

デフォルトでは、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)には、利用可能なオプションの概要が含まれています。

528
Lekensteyn

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

40
Roger Light

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

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

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

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

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

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

16
Nikunj K.

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

cp dir1 copy_of_dir1

dir1自体のみをコピーし、その中のファイルはコピーしないため、構造が存在しない間は最終的に新しいディレクトリ構造になります。

言い換えると、コピーされた後、私のコンテンツはfile1file2などであると言われます。ただし、これらのファイルはコピーされていないため、存在しません。

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

2
Ravexina

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

1
endrias

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

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

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

または

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