Was bedeutet?

9

Was heißt ./das

Beispiel: Bedeutet der folgende Befehl das Verschieben von Dateien aus dem Gapache2Ordner in sites-available:

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

Wenn nicht, wie soll dies geändert werden?

Ich habe versucht, etwas von der Google-Suche zu erhalten. Wird ./aber von Suchmaschinen ignoriert.

madhu131313
quelle

Antworten:

13

Unter Unix / Linux .bedeutet das aktuelle Verzeichnis in Ihrem Fall /etc/mds-1.2-beta4/sana/config/etc/Gapache2. Es gibt auch viele Verknüpfungen wie:

  • ..: Elternverzeichnis ( /etc/mds-1.2-beta4/sana/config/etc/)
  • ~: Home-Ordner

Um alle Ordner und Dateien von /etc/mds-1.2-beta4/sana/config/etc/Gapache2nach zu verschieben, lautet /etc/apache2/sites-availableder Befehl wie folgt

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

UPDATE: Dieser Link ist eine gute Ressource für grundlegende UNIX-Befehle

aneeshep
quelle
Um auch versteckte Dateien zu verschieben, benötigen Sie einen komplexeren Glob-Ausdruck (oder andere Shell-Einstellungen). Siehe stackoverflow.com/questions/1586477/…
Andrea Corbellini
(in diesem Kommentar vorgeben, ein neuer Benutzer zu sein) " ./bedeutet das aktuelle Verzeichnis" Was ist der Unterschied zwischen .und ./dann? Ich dachte, das .bedeutet nur das aktuelle Verzeichnis.
Gertvdijk
@gertvdijk: Die Antwort wurde aktualisiert. :)
Aneeshep
3

Über .

Unter UNIX / Linux .bedeutet dies das aktuelle Verzeichnis. Sie sehen es auch in den folgenden lsBefehlen:

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

Schrägstriche ./und die symbolischen Links

Wenn Sie das /an das /Verzeichnis anhängen, hat dies dieselbe Bedeutung wie das Anhängen von a an einen anderen Verzeichnisnamen. Es wird nur sichergestellt, dass Sie nicht an einer Datei arbeiten. Im Allgemeinen ist dies kein Unterschied in cpund mvBefehle, aber Sie werden einen Unterschied sehen, wenn Sie symbolische Links verwenden. Angenommen, diese Struktur:

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

Dann zeigt eine regelmäßige Auflistung den Link selbst

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

Wenn /Sie jedoch die Liste anhängen, wird sie in die Liste aufgenommen und der Inhalt angezeigt.

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

Dies bedeutet , dass , wenn Operationen verwendet wird , ist es eine gute Sache , die anhängen , /wenn Sie die Inhalte davon beziehen oder Sie wollen kopieren / verschieben in sie durch den Link dereferencing, anstatt ersetzt den Link selbst.

Siehe auch: Nachgestellte Schrägstriche bei symbolischen Links zu Verzeichnissen

Zurück zum Beispiel

In dem Beispiel in Ihrer Frage möchten Sie wirklich nur den Inhalt des Verzeichnisses in das andere verschieben. Also, wie aneeshep betonte , sollten Sie verwenden mv ./* destdir/. Dies entspricht der mv * destdir/Shell, die Ihre Shell (Bash) *standardmäßig aus dem aktuellen Verzeichnis erweitert .

Also würde ich es so ausführen (im Quellverzeichnis):

mv * /etc/apache2/sites-available/
gertvdijk
quelle