Поменять местами два файла в bash [дубликат]

Да, разница в порядке обработки ... и символических ссылок.

Вот пример того, как это может иметь значение. У меня есть внешний диск, смонтированный в /root/Archives, и символическая ссылка, указывающая на него из моего дома:

$ pwd
/home/katsura

$ ls -ld Archives
lrwxrwxrwx 1 root root 14 Oct 23  2013 Archives -> /root/Archives

realpath разрешает симлинк:

$ realpath Archives
/root/Archives

$ realpath -L Archives
/root/Archives

Однако:

$ realpath Archives/../foo
/root/foo

$ realpath -L Archives/../foo
/home/katsura/foo

Без опции (или с -P) симлинк разрешается первым, поэтому Archives становится /root/Archives, затем ... применяется.

При -L сначала применяется ... применяется первым, поэтому Архивы/... становится /home/katsura, затем разрешаются оставшиеся симлинки. Поскольку симлинков не осталось, результатом будет просто /home/katsura.

9
01.03.2015, 21:15
0 ответов

Теги

Похожие вопросы