Измените несколько (включая No) расширения файла

Если вы устанавливаете пароль старения вообще, то PAM_UNIX.SO собирается запретить их аутентификацию после истечения срока действия пароля. Чтобы сделать то, что вы хотите, вы, вероятно, можете добавить что-то в свои сценарии входа. Например, я могу добавить следующее в /etc/profile.d :

#!/bin/bash
maxDays=30
dayLastChanged=$(passwd -S $(whoami) | awk '{print $3}')

currentTimestamp=$(date "+%s")
lastChangeTimestamp=$(date -d $dayLastChanged "+%s")

timestampDifference=$(( $currentTimestamp - $lastChangeTimestamp ))
maxSeconds=$(( $maxDays * 86400 ))

if [[ $timestampDifference -gt $maxSeconds ]]; then    
   echo "Yo, you need to change your password bud. Otherwise the guys with white-on-white ties are coming for you."    
fi
0
04.03.2015, 23:05
3 ответа

считают, что это должно работать для вас (вероятно, более элегантные способы сделать это с SED).

for file in *; do
  base=`echo "${file%.*}"`
  mv -- "${file}" "${base}.txt"
done
1
28.01.2020, 02:51

Вам нужно использовать американское правописание:

apt-get install software-center

(это будет установлено https://launchpad.net/ubuntu/+source/software-center ).

-121--229853-

Не обязательно более элегантный, но для полноты, вот SED SED SED

for file in *; do
  mv "$file" "$(echo "$file" | sed 's/^\(.*\)\.\?.*$/\1.txt/')"
done

BIT SED схватывает все перед последней точкой в ​​именем файле и заменяет точку И все, что следует с '.txt'. Если нет точек в имени файла, то '.txt' просто прилагается к всему этому.

Цитаты вокруг переменных важны для обработки файлов пространствами и такими, независимо от того, с какого метода вы идете.

0
28.01.2020, 02:51

Чтобы переименовать все из них в оболочке было бы что-то подобное:

for file in *; do
  mv -- "${file}" "`basename -- "${file}"`.txt"
done

Вы можете проверить тип с файлом или другие проверки для определения расширений.

0
28.01.2020, 02:51

Теги

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