Que signifie?

9

Que veut ./dire?

Par exemple: la commande suivante signifie-t-elle déplacer des fichiers du Gapache2dossier vers sites-available:

root@ip-10-112-55-203:/etc/mds-1.2-beta4/sana/config/etc/Gapache2# mv ./ /etc/apache2/sites-available

Sinon, comment cela devrait-il être modifié?

J'ai essayé d'obtenir quelque chose de la recherche Google. Mais ./est ignoré par les moteurs de recherche.

madhu131313
la source

Réponses:

13

Sous Unix / linux .signifie le répertoire courant dans votre cas /etc/mds-1.2-beta4/sana/config/etc/Gapache2. Il existe également de nombreux raccourcis tels que:

  • ..: répertoire parent ( /etc/mds-1.2-beta4/sana/config/etc/)
  • ~: dossier de départ

Donc, pour déplacer tous les dossiers et fichiers de /etc/mds-1.2-beta4/sana/config/etc/Gapache2vers /etc/apache2/sites-available, la commande sera comme ceci

mv ./* /etc/apache2/sites-available/

MISE À JOUR: Ce lien est une bonne ressource pour les commandes UNIX de base

aneeshep
la source
Pour déplacer également des fichiers cachés, vous avez en fait besoin d'une expression glob plus sophistiquée (ou de différents paramètres de shell). Voir stackoverflow.com/questions/1586477/…
Andrea Corbellini
(faisant semblant d'être un nouvel utilisateur dans ce commentaire) " ./signifie le répertoire courant" Quelle est la différence entre .et ./ensuite? Je pensais que cela .signifie simplement le répertoire actuel.
gertvdijk
@gertvdijk: mise à jour de la réponse. :)
aneeshep
3

À propos de .

Sous UNIX / Linux, .signifie le répertoire courant. Vous le verrez également répertorié dans les lscommandes:

ls -al
total 40348
drwx------  20 root root     4096 Feb  2 23:05 .               <-- there!
drwxr-xr-x  24 root root     4096 Jan 31 20:07 ..
-rw-r--r--   1 root root      322 Dec 16 17:35 20-revert

Les barres obliques ./et les liens symboliques

Lorsque vous y ajoutez le /, cela a la même signification que l'ajout d'un /à n'importe quel autre nom de répertoire. Il s'assurera simplement que vous n'opérez pas sur un fichier. Généralement, ce ne sera pas une différence dans les commandes cpet mv, mais vous verrez une différence lorsque vous utilisez des liens symboliques. Supposons que cette structure:

.                                                                   
├── a                                                               
├── dir1
│   ├── b
│   └── c
├── dir2
│   └── d
└── symlink -> dir2

Ensuite, une liste régulière montrera le lien lui-même

ls -l symlink
lrwxrwxrwx 1 gert gert 4 Feb  3 12:15 symlink -> dir2

mais en y ajoutant la /liste de volonté, elle descendra et affichera le contenu.

ls -l symlink/
total 0
-rw-rw-r-- 1 gert gert 0 Feb  3 12:15 d

Cela signifie que lorsque vous utilisez des opérations, c'est une bonne chose d'ajouter le /si vous vous référez à son contenu ou si vous souhaitez le copier / déplacer en déréférençant le lien, plutôt que de remplacer le lien lui-même.

Voir aussi: Trailing slashes sur les liens symboliques vers les répertoires

Retour à l'exemple

Dans l'exemple de votre question, vous voulez vraiment déplacer uniquement le contenu du répertoire dans l'autre. Donc, comme l'a souligné aneeshep , vous devez utiliser mv ./* destdir/. C'est la même chose que mv * destdir/votre shell (Bash) développe le *répertoire courant par défaut.

Donc, je l'exécuterais comme ceci (dans le répertoire source):

mv * /etc/apache2/sites-available/
gertvdijk
la source