Подсказка PS1 зависит от того, кто вошел в систему

Я предполагаю, что имена файлов соответствуют шаблону author - name.pdfи что и author, и nameмогут содержать любой допустимый символ, кроме -, окруженного пробелами.

find. -type f -name '* - *.pdf' \
    -execdir sh -c 'b=${1% - *}; e=${1#* - }; mv "$1" "${e%.pdf} - $b.pdf"' sh {} \;

Это находит все обычные файлы в текущем каталоге, имена которых соответствуют шаблону * - *.pdf.

Для каждого такого файла выполняется подоболочка. Подоболочка делает следующее:

b=${1% - *}  # pick out the start of the filename
e=${1#* - }  # pick out the end of the filename

# Combine $b and $e into a new filename while removing ".pdf" from
# the end of the original filename and adding it to the end of
# the new filename instead.
mv "$1" "${e%.pdf} - $b.pdf"

Проверка:

$ ls -l
total 0
-rw-r--r--  1 kk  wheel  0 Aug 30 11:31 arr! - Boaty McBoatface.pdf
-rw-r--r--  1 kk  wheel  0 Aug 30 11:30 hello world - bingo-night!.pdf

$ find. -type f -name '* - *.pdf' -execdir sh -c 'b=${1% - *}; e=${1#* - }; mv "$1" "${e%.pdf} - $b.pdf"' sh {} \;

$ ls -l
total 0
-rw-r--r--  1 kk  wheel  0 Aug 30 11:31 Boaty McBoatface - arr!.pdf
-rw-r--r--  1 kk  wheel  0 Aug 30 11:30 bingo-night! - hello world.pdf

При повторном запуске имена вернутся к исходным.

1
06.09.2019, 13:18
1 ответ

В корневом каталоге .bashrcпроверьте содержимое /proc/self/loginuidи задайте пользовательскую переменную PS1, только если она совпадает с вашим UID.

0
28.01.2020, 00:01

Теги

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