Що означає?


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. Але ./пошукові системи ігноруються.

Відповіді:


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


Щоб також переміщувати приховані файли, насправді потрібен більш складний глобальний вираз (або різні настройки оболонки). Див stackoverflow.com/questions/1586477 / ...
Andrea Corbellini

(прикидаючись новим користувачем у цьому коментарі) " ./означає поточний каталог" Яка різниця між .та ./тоді? Я думав, що це .означає лише поточний каталог.
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/
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.