Различия могут быть незначительными в cd
пример Вы, если, но остерегаются когда Вы mv
файлы.
Например, если Вы хотите переместить несколько файлов в другой каталог, и Вы вводите
for i in *.mp3 ; do mv $i dest ; done
При упущении запаздывающей наклонной черты затем каждый из перемещенных файлов перезапишет названный файл dest
(первое на самом деле создаст названный файл dest
если это уже не существует). Результат состоит в том, что все файлы кроме последнего перезаписываются с последним файлом, и это теперь называют dest
.
Для перемещения в каталог необходимо указать запаздывание /
for i in *.mp3 ; do mv $i dest/ ; done
Один побочный эффект наклонной черты состоит в том, что, если каталог не существует, Вы получите сообщение об ошибке.
cd abc/xyz
Корректно, так как "abc/xyz" относится к '"xyz" объекту в каталоге "abc"'. Когда Вы вводите
cd abc/xyz/
это относится к '"" объекту в "xyz" каталоге в каталоге "abc"'. "" (Пустая строка) объект автоматически переводится в, который является "текущим" каталогом, который в этом случае является "xyz" каталогом. Таким образом, все это удается к тому же самому.
(Некоторые люди чувствуют, что каталогам "нужно" было добавить наклонную черту. Они ошибаются.)
Они идентичны. Строку рассматривают операторы имени файла как "путь", который является абстракцией, и каждый путь связан с базовым именем и другим путем, dirname. Два пути идентичны, если каждый из них является той же строкой. Для Вашего примера:
cas var$ dirname abc/xyz; basename abc/xyz abc xyz cas var$ dirname abc/xyz/; basename abc/xyz/ abc xyz
Обратите внимание, что, в то время как некоторые программы рассматривают строки тождественно, включая все обычные утилиты UNIX, если они - те же пути, существуют другие, которые действительно заботятся о запаздывающих наклонных чертах. Самый важный из них rsync
.
Постскриптум От спецификации POSIX, Разрешения Пути:
Путь, который содержит по крайней мере один символ ненаклонной черты и это заканчивается одной или несколькими запаздывающими наклонными чертами, буду разрешен, как будто единственный точечный символ ('.') был добавлен к пути.