Разность dir и удаление

Этим управляют PS1 переменная среды. Вы видите то, что это путем выполнения как корень, echo $PS1. Можно затем установить переменную в собственном профиле удара с echo 'PS1=<value of PS1>' >> ~/.bashrc.

Можно погуглить для большого количества возможных значений PS1, но часть, которую Вы в настоящее время пропускаете, \w для рабочего каталога.

1
18.12.2012, 18:35
2 ответа

Вы могли сделать что-то вроде этого. Обратите внимание, что это не тестируется код. Я принимаю $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

Если это, кажется, делает то, что Вы хотите, выполняете его снова, но опускаете слово "эхо" в команде.

0
27.01.2020, 23:54

Если Вы хотите, чтобы все файлы в существовали в B затем, Вы могли бы просто использовать rsync с --remove-source-files опция, для добавления / обновляют файлы в B, с теми который в A, и затем удаляют исходные файлы из A. Или с немного большим количеством взламывания, выполнением rsync в --dry-run режим и передача по каналу вывода через grep, xargs и rm -f, только сравните эти две структуры каталогов, и удалите идентичные файлы, см.:

Linux / Unix rsync: Удалите Исходный файл После Передачи

rsync - удалять-исходные-файлы удаляют исходные файлы один за другим или после того, как rsync завершится?

1
27.01.2020, 23:54

Теги

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