"Cp:omitting directory"とはどういう意味ですか?

私は次のコマンドを発行しました:

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' 

というように。..

なぜ私はこれらのメッセージを得るのですか?

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

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

ここでチェックする必要があるもののカップル:

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

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

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

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

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

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

cp dir1 copy_of_dir1

あなただけの、正確にコピーしている dir1 それ自体ではなく、その中のファイルなので、最後には構造が存在しない間に新しいディレクトリ構造になります。

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

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

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

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

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

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

または

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

二つのディレクトリ'Tag'&'Test'があるとします

'Tag'ディレクトリを'Test'ディレクトリにコピーする場合は、コマンドを使用します

$ : cp -r Tag Test (case sensitive)

そうでない場合は、上記のコードで主に問題が解決され、以下のようなメッセージが表示されます

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

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