Comment copier des répertoires sous OS X 10.7.3?

109

Salut, j'essaie de copier mon répertoire rails_projects de haseebjaved / Desktop / rails_projects dans mon répertoire personnel, qui est haseebjaved.

Comment puis-je faire cela via la ligne de commande?

En outre, puis-je voir mon répertoire personnel sur l'interface utilisateur ou uniquement via la ligne de commande sous Mac OS X?

Est-il possible de copier des répertoires vers et depuis mon répertoire personnel via l'interface utilisateur? Ou uniquement via la ligne de commande?

Je vous remercie

hjaved
la source

Réponses:

251

Y a-t-il quelque chose de spécial avec ce répertoire ou demandez-vous simplement comment copier des répertoires?

Copiez récursivement via CLI:

cp -R <sourcedir> <destdir>

Si vous ne voyez que les fichiers sous la sourcedircopie (au lieu de sourcediraussi), cela se produit parce que vous avez conservé la barre oblique de fin pour sourcedir:

cp -R <sourcedir>/ <destdir>

Ce qui précède ne copie que les fichiers et leurs répertoires à l'intérieur de sourcedir. En règle générale, vous souhaitez inclure le répertoire que vous copiez, alors supprimez la barre oblique de fin:

cp -R <sourcedir> <destdir>
Andy Friese
la source
Merci Peter. J'essaye de copier trois sous-répertoires dans rails_projects dans mon répertoire personnel haseebjaved. Lorsque j'émets la commande suivante: cp -r ~ / Desktop / rails_projects haseebjaved, la commande copie effectivement les trois sous-répertoires de rails_projects vers haseebjaved et crée un nouveau dossier nommé haseebjaved dans mon répertoire personnel haseebjaved. Ce que je veux, c'est que le répertoire rails_projects apparaisse sous mon répertoire personnel, tout comme les autres dossiers tels que Téléchargements, Bureau, etc.
hjaved
J'utilise la fonction de recherche avec Finder maintenant et c'est beaucoup mieux, mais je ne vois pas mon répertoire personnel dans les favoris ou ailleurs. Très nouveau pour Mac OS X et Rails.
hjaved
cp -r ~/Desktop/rails_projects ~est ce que vous voulez
Andy Friese
5
Voici le manuel de cp:-R If source_file designates a directory, cp copies the directory and the entire subtree connected at that point. **If the source_file ends in a /, the contents of the directory are copied rather than the directory itself.** This option also causes symbolic links to be copied, rather than indirected through, and for cp to create special files rather than copying them as normal files. Created directories have the same mode as the corresponding source directory, unmodified by the process' umask.
Xiao
2
Juste deux cents pour copier des dossiers à partir de la ligne de commande: idem commande ss64.com/osx/ditto.html PS. Contrairement à cp -R, si le dossier de destination existe déjà, le contenu existant sera fusionné avec le contenu du dossier en cours de copie.
Alexander Hramov
2

tl; dr

cp -R "/src/project 1/App" "/src/project 2"

Explication:

L'utilisation de guillemets prend en charge les espaces dans les noms de répertoire

cp -R "/src/project 1/App" "/src/project 2"

Si le répertoire de l'application est spécifié dans le répertoire de destination:

cp -R "/src/project 1/App" "/src/project 2/App"

et "/ src / project 2 / App" existe déjà, le résultat sera "/ src / project 2 / App / App"

Il est préférable de ne pas spécifier le répertoire copié dans la destination afin que la commande puisse être répétée encore et encore avec le résultat attendu.

Dans un script bash:

cp -R "${1}/App" "${2}"
Gary Davies
la source