web-dev-qa-db-fra.com

Objectif de cp -x (rester sur le système de fichiers)?

Si je voulais rester sur le même système de fichiers, ne pourrais-je pas simplement spécifier un chemin de sortie pour le même système de fichiers?

Ou est-ce pour éviter de quitter accidentellement le système de fichiers actuel?

25
neverMind9

Il limite l'endroit où les fichiers sont copiés à partir de , pas où ils sont copiés. Il est utile avec les copies récursives, pour contrôler la façon dont cp descend dans les sous-répertoires. Donc

cp -xr / blah

copiera uniquement le système de fichiers racine, aucun des autres systèmes de fichiers montés.

Voir le cp -x documentation (bien que sa distinction soit subtile).

59
Stephen Kitt

L'indicateur -x Sur cp est une extension GNU. Lors de la copie d'un seul fichier, cette option n'aura aucun effet, mais lors de la copie d'une hiérarchie de fichiers entière, l'option -x empêche la copie de fichiers et de répertoires qui ne vivent pas sur le même système de fichiers que la source d'origine.

Par exemple, sur un système de fichiers avec des points de montage à /usr Et /usr/local, L'utilisation de cp -xR /usr /some-dest Ne copiera pas la hiérarchie sous /usr/local.

Il existe d'autres utilitaires avec une option -x Avec une sémantique similaire, tels que du et find (l'indicateur est appelé -xdev Pour find ) et rsync.

28
Kusalananda