Для чего используются «-» (one dash) и «--» (double dash) в командной оболочки unix?
Есть правило: если параметр однобуквенный, то используется одинарное тире, а если длиннее (слово), то двойное тире. Но это правило не везде соблюдается.
Ещё в некоторых командах двойное тире означает остановку обработки входных параметров.
Ещё одинарное тире обычно служит индикатором использования стандартного ввода (stdin) вместо файла.
Но при этом cd - это переход в предыдущую директорию.
"-"  - когда параметр/параметры команды односимвольные 
Например "cp -rf test/* new": указываем два параметра "r" и "f'
"--" - когда параметры состоят более чем из одного символа. 
Например "cp --help"