Этим управляют PS1
переменная среды. Вы видите то, что это путем выполнения как корень, echo $PS1
. Можно затем установить переменную в собственном профиле удара с echo 'PS1=<value of PS1>' >> ~/.bashrc
.
Можно погуглить для большого количества возможных значений PS1
, но часть, которую Вы в настоящее время пропускаете, \w
для рабочего каталога.
Вы могли сделать что-то вроде этого. Обратите внимание, что это не тестируется код. Я принимаю $A, и $B являются Вашими двумя каталогами:
(cd $B && find . -type f -print) | (cd $A && while read f; do /bin/rm -f "${f}"; done;)
Я просто попробовал его, но повторение команды к stdout вместо того, чтобы выполнить его, и он, кажется, работает хорошо:
$ (cd $B && find . -type f -print) | (cd $A && while read f; do echo /bin/rm -f "${f}";done;)
/bin/rm -f ./1
/bin/rm -f ./2
/bin/rm -f ./3
/bin/rm -f ./4
Если это, кажется, делает то, что Вы хотите, выполняете его снова, но опускаете слово "эхо" в команде.
Если Вы хотите, чтобы все файлы в существовали в B затем, Вы могли бы просто использовать rsync
с --remove-source-files
опция, для добавления / обновляют файлы в B, с теми который в A, и затем удаляют исходные файлы из A. Или с немного большим количеством взламывания, выполнением rsync
в --dry-run
режим и передача по каналу вывода через grep
, xargs
и rm -f
, только сравните эти две структуры каталогов, и удалите идентичные файлы, см.: