Lorsque j'utilise la commande cp ou move dans une fenêtre de terminal, je suis actuellement avec bash dans un certain dossier comme celui-ci.
NES@server:~/Desktop/dir1$
Et maintenant, je veux copier un fichier d'ici ~/anotherdir/dir2
dans le dossier choisi en bash (dir1), j'utiliserais la commande
cp ~/anotherdir/dir2/file ~/Desktop/dir1
existe-t-il une chaîne de raccourcis pour faire référence au répertoire actuellement sélectionné? De sorte que dans cet exemple, je n'ai pas à fournir le chemin d'accès complet au répertoire cible, mais la commande sait qu'elle doit utiliser le répertoire actuellement sélectionné dans bash? c'est-à-dire que ~ représente le répertoire personnel?
..
signifie un répertoire plus bas. Peut être utilisé plusieurs fois, c'estcd ../..
..
amènera au répertoire parent de votre répertoire actuel. Bon point.popd
etpushd
mais cela se transforme en essai..
et..
sont au niveau du système de fichiers, donc tout programme les acceptera. D'un autre côté, des raccourcis tels que~
et~-
font partie du shell.cd -
; ne savait pas qu'il existait.Vous pouvez utiliser $ (pwd), il résoudra la sortie de la commande pwd.
Exemple:
la source
echo $PWD
../ représente le répertoire courant. Vous pouvez donc utiliser la commande
cp ~/anotherdir/dir2/file ./
Cela copiera le fichier "fichier" dans le répertoire de travail actuel.la source
ln -s /some/long/path/to/get/to/cake
pas sans second argument , cela mettracake
directement le lien symbolique dans votre courant. Très bon pour les paresseux. Enregistre a.
.Pour utiliser le répertoire actuel comme répertoire de destination, utilisez un seul point '
.
'Longue réponse
En utilisant votre exemple, vous taperiez:
cp ~/anotherdir/dir2/file .
Pour voir le point
.
,..
et les../../
noms de répertoire en action, copiez et collez les commandes suivantes dans votre terminal:La sortie de la commande tree apparaît comme ceci:
La
.
sortie en haut de l'arborescence représente le nouveau répertoire couranta
qui est le grand-parenta/b/c
dont nous avons accédé à l'aide de lacd ../../
commande. En dessous,a
nous voyons les sous-répertoiresa/b
,a/b/c
eta/b/c2
Analyse ligne par ligne
Nous avons d'abord créé 4 répertoires sur une ligne en utilisant
&&
pour joindre plusieurs lignes ensemble.Ensuite, nous avons changé pour le répertoire
a/b/c
, qui est le répertoire actuel pour les commandes de copie suivantes:cp
), nous définissons la destination sur notre répertoire actuel ( c ) avec.
...
.../c2
Ensuite, comme indiqué précédemment, nous avons changé le répertoire actuel en
a
et avons exécuté latree
commande pour afficher tous les répertoires et fichiers sousa
.Nettoyer
Une fois que nous avons terminé, nous supprimons les trois répertoires et fichiers avec:
la source
La variable d'environnement pour le répertoire courant est $ PWD
la source
Vous pouvez utiliser le point (
.
), l'~+
expansion tilde , lapwd
commande ou la variable $ PWD pour représenter le répertoire de travail actuel (CWD). Toutes ces commandes peuvent le faire:mv file_old_dir .
mv file_old_dir ~+
mv file_old_dir $(pwd)
mv file_old_dir $PWD
la source
Oui (comme d'autres l'ont noté), le répertoire courant est ".", C'est pourquoi vous pouvez démarrer des programmes / scripts à partir du répertoire courant avec ./script (le script ne fonctionnera que si. N'est pas la partie de PATH, ce qui n'est pas recommandé bien que). Utiliser $ PWD ou $ (pwd) est un peu exagéré, même si d'autres ont mentionné que l'utilisation d'un seul caractère point est plus courte, c'est sûr :) ".." est le répertoire parent, bien sûr "/" est la racine. Aussi agréable de mentionner que "cd -" vous mettra dans le répertoire précédent où vous étiez avant de changer cwd (répertoire de travail actuel). Il peut également être utile dans le travail quotidien. Une seule commande "cd" sans aucune autre dans la ligne de commande vous mettra dans "~" (votre maison).
la source
$PWD
n'est pas exagéré lors de la création de liens symboliques vers des chemins absolus.