Que signifie" cp: omettre le répertoire"?

J'ai émis la commande suivante:

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

Lorsque je fais cela, je commence à recevoir les messages suivants:

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' 

et ainsi de suite...

Pourquoi est-ce que je reçois ces messages ?

Par défaut, cp copie uniquement les fichiers du répertoire et non les sous-répertoires du répertoire. Message cp: omitting directory 'directory' vous avertit que le répertoire mentionné n'est pas copié.

Pour ce faire, spécifiez le -r (ou --recursive) option:

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

Le page de manuel (commande: man cp) contient un aperçu des options disponibles.

Le message signifie que cp n'a pas copié les répertoires répertoriés. C'est le comportement par défaut pour cp - seuls les fichiers sont copiés normalement, que vous les spécifiiez explicitement ou que vous utilisiez *. Si vous souhaitez copier des répertoires, utilisez le -r switch qui signifie "récursif".

Quelques choses ici qui doivent vérifier:

  1. Ne pas utiliser sudo. Vous n'en avez pas besoin, vous avez déjà les autorisations pour écrire des choses dans votre propre répertoire personnel.

  2. Vous pouvez facilement afficher les fichiers et répertoires cachés dans le gestionnaire de fichiers graphique en sélectionnant Afficher/Afficher les fichiers cachés dans le menu. Ou en appuyant sur Ctrl - H.

  3. Vous devez utiliser le -R option dans le cp commande pour copier un répertoire et son contenu.

  4. /home n'est pas votre répertoire personnel. /home / le nom d'utilisateur est. Donc, vous essayez probablement de copier du mauvais endroit.

  5. Le shell est sensible à la casse, donc ~ / downloads et ~ / Downloads sont deux choses différentes.

Lorsque vous copiez un répertoire comme:

cp dir1 copy_of_dir1

Vous copiez seulement et exactement le dir1 lui-même et non les fichiers qu'il contient, donc à la fin vous vous retrouverez avec une nouvelle structure de répertoires alors que la structure n'existe pas.

En d'autres termes, après avoir été copié, il dira que mon contenu est file1, file2, etc; Cependant, ces fichiers n'ont pas été copiés et n'y existent donc pas.

Donc, pour résoudre ce problème qui peut survenir cp par défaut, ne copie pas les répertoires et les ignore, sauf si vous spécifiez -r option qui copie également tous les fichiers de manière récursive.

La raison pour laquelle il est dit omitting directory c'est parce que cp et tous les utilitaires de copie, que je connais, créent une liste de fichiers et de sous-répertoires à copier avant de commencer à copier les fichiers. Lorsque le --recursive les options sont manquantes, les sous-répertoires sont supprimés de cette liste. En tant que tel, l'omission fait référence à la suppression de la liste de copie, et non de votre média source. Je crois que cela répond à la signification du message.

Le cp la commande est utilisée pour copier des fichiers et un répertoire, pas les répertoires imbriqués,si vous souhaitez copier des répertoires imbriqués, vous pouvez ajouter - r après cela, où -r signifie récursif.

Syntaxe que vous pouvez suivre (en cours d'exécution en tant que root):

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

ou

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

Supposons que vous ayez deux répertoires ' Tag 'et'Test'

Si vous voulez copier le répertoire 'Tag' dans le répertoire 'Test', utilisez la commande

$ : cp -r Tag Test (case sensitive)

La plupart du temps, le problème sera résolu avec le code ci-dessus sinon et vous obtenez un message ci-dessous comme

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

ajoutez ensuite des fichiers dans le répertoire 'Tag', puis copiez-les dans 'Test'. En fait, j'ai le même problème mais résolu comme ce que j'ai dit en second lieu.