Co znaczy?

9

Co ./znaczy

Na przykład: Czy następujące polecenie oznacza przenoszenie plików z Gapache2folderu do sites-available:

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

Jeśli nie, jak należy to zmienić?

Próbowałem uzyskać coś z wyszukiwarki Google. Ale ./zostaje zignorowany przez wyszukiwarki.

madhu131313
źródło

Odpowiedzi:

13

W Uniksie / linux .oznacza bieżący katalog w twoim przypadku /etc/mds-1.2-beta4/sana/config/etc/Gapache2. Istnieje również wiele skrótów, takich jak:

  • ..: katalog macierzysty ( /etc/mds-1.2-beta4/sana/config/etc/)
  • ~: folder domowy

Tak, aby przenieść wszystkie foldery i pliki /etc/mds-1.2-beta4/sana/config/etc/Gapache2na /etc/apache2/sites-availablepolecenie będzie tak

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

AKTUALIZACJA: Ten link jest dobrym źródłem podstawowych poleceń UNIX

aneeshep
źródło
Aby przenieść również ukryte pliki, w rzeczywistości potrzebujesz bardziej wyrafinowanego wyrażenia glob (lub różnych ustawień powłoki). Zobacz stackoverflow.com/questions/1586477/…
Andrea Corbellini
(udając, że w tym komentarzu jest nowym użytkownikiem) ./oznacza bieżący katalog„ Jaka jest różnica między nimi .a nimi ./? Myślałem, że to .oznacza tylko bieżący katalog.
gertvdijk
@gertvdijk: Zaktualizowano odpowiedź. :)
aneeshep
3

O .

W systemie UNIX / Linux .oznacza bieżący katalog. Zobaczysz go również w lspoleceniach:

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

Ukośniki ./i dowiązania symboliczne

Dołączanie /do niego ma to samo znaczenie, co dołączanie /do dowolnej innej nazwy katalogu. Tylko upewni się, że nie operujesz na pliku. Ogólnie rzecz biorąc, to nie będzie różnicy cpi mvpoleceń, ale widać różnicę, gdy używasz dowiązania symboliczne. Załóżmy, że ta struktura:

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

Następnie zwykły wpis pokaże sam link

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

ale dołączenie /spowoduje, że lista zejdzie do niego i wyświetli zawartość.

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

Oznacza to, że podczas korzystania z operacji, to jest dobrą rzeczą, aby dołączyć /, jeśli odnoszą się do zawartości tego czy chcesz skopiować / przenieść do niego przez dereferencji link, zamiast wymiany samego łącza.

Zobacz także: Końcowe ukośniki na symbolicznych linkach do katalogów

Wróć do przykładu

W przykładzie w twoim pytaniu naprawdę chcesz tylko przenieść zawartość katalogu do drugiego. Tak jak wskazał aneehep , powinieneś użyć mv ./* destdir/. Jest to takie samo, jak domyślna mv * destdir/interpretacja powłoki (Bash) *z bieżącego katalogu.

Więc uruchomiłbym to tak (w katalogu źródłowym):

mv * /etc/apache2/sites-available/
gertvdijk
źródło