次のコマンドを発行しました。
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
スイッチを使用します。
ここで確認する必要のあるもの:
Sudo
を使用しないでください。あなたはそれを必要としません、あなたはすでにあなた自身のホームディレクトリにものを書く許可を持っています。
メニューから[隠しファイルの表示/表示]を選択すると、グラフィカルファイルマネージャーで隠しファイルとディレクトリを簡単に表示できます。またはを押して Ctrl - H。
ディレクトリとその内容をコピーするには、cp
コマンドで-R
オプションを使用する必要があります。
/ homeはホームディレクトリではありません。/home/usernameは。したがって、おそらく間違った場所からコピーしようとしています。
シェルでは大文字と小文字が区別されるため、〜/ downloadsと〜/ Downloadsは異なるものです。
次のようなディレクトリをコピーする場合:
cp dir1 copy_of_dir1
dir1
自体のみをコピーし、その中のファイルはコピーしないため、構造が存在しない間は最終的に新しいディレクトリ構造になります。
言い換えると、コピーされた後、私のコンテンツはfile1
、file2
などであると言われます。ただし、これらのファイルはコピーされていないため、存在しません。
したがって、この問題を解決するために、デフォルトでcp
はすべてのファイルを再帰的にコピーする-r
オプションを指定しない限り、デフォルトではディレクトリをコピーせずにスキップします。
omitting directory
と言う理由は、cp
と、私が知っているすべてのコピーユーティリティが、ファイルのコピーを開始する前に、コピーするファイルとサブディレクトリのリストを作成するためです。 --recursive
オプションが欠落している場合、サブディレクトリはこのリストから外れます。そのため、省略とは、ソースメディアからではなく、コピーリストからの削除を指します。これはメッセージの意味に対応していると思います。
cpコマンドは、ネストされたディレクトリではなく、ファイルとディレクトリをコピーするために使用されます。ネストしたディレクトリをコピーする場合は、その後に-rを追加できます。再帰的。
従うことができる構文(ルートとして実行):
cp -r /source/dir/* /destination/
または
cp --recursive /source/dir/* /destination/