Что значит?

9

Что ./значит?

Например: означает ли следующая команда перемещение файлов из Gapache2папки в sites-available:

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

Если нет, то как это следует изменить?

Я пытался получить что-то из поиска Google. Но ./игнорируется поисковыми системами.

madhu131313
источник

Ответы:

13

В Unix / Linux .означает текущий каталог в вашем случае /etc/mds-1.2-beta4/sana/config/etc/Gapache2. Есть также много ярлыков, таких как:

  • ..: родительский каталог ( /etc/mds-1.2-beta4/sana/config/etc/)
  • ~: домашняя папка

Таким образом, чтобы переместить все папки и файлы из /etc/mds-1.2-beta4/sana/config/etc/Gapache2в /etc/apache2/sites-available, команда будет выглядеть так:

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

ОБНОВЛЕНИЕ: Эта ссылка является хорошим ресурсом для основных команд UNIX

aneeshep
источник
Чтобы переместить скрытые файлы, на самом деле вам нужно более сложное выражение glob (или другие настройки оболочки). См. Stackoverflow.com/questions/1586477/…
Андреа Корбеллини
(притворяется новым пользователем в этом комментарии) " ./означает текущий каталог" В чем разница между .и ./тогда? Я думал, что это просто .означает текущий каталог.
gertvdijk
@gertvdijk: обновил ответ. :)
aneeshep
3

Около .

В UNIX / Linux .означает текущий каталог. Вы также увидите его в списке lsкоманд:

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

Косые черты ./и символические ссылки

При добавлении /к нему это имеет то же значение, что и добавление /к любому другому имени каталога. Он просто убедится, что вы не работаете с файлом. Как правило, это не будет разница в командах cpи mvкомандах, но вы увидите разницу, когда будете использовать символические ссылки. Предположим, эта структура:

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

Тогда обычный листинг покажет саму ссылку

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

но добавление /списка заставит его опуститься в него и показать содержимое.

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

Это означает, что при использовании операций полезно добавить, /если вы ссылаетесь на его содержимое или хотите скопировать / переместиться в него путем разыменования ссылки, а не замены самой ссылки.

Смотрите также: Конечные косые черты на символических ссылках на каталоги

Вернуться к примеру

В примере в вашем вопросе вы действительно хотите переместить только содержимое каталога в другой. Так что, как указал анишеп , вы должны использовать mv ./* destdir/. Это то же самое, что mv * destdir/ваша оболочка (Bash) *по умолчанию расширяет каталог из текущего каталога.

Итак, я бы запустил его так (в исходном каталоге):

mv * /etc/apache2/sites-available/
gertvdijk
источник