Вот решение, которое проверяет md5sum один раз и сравнивает его с загруженным файлом, с возможностью удаления файла, если суммы md5 не совпадают. Он должен обратиться к жалобам на безопасность с ответа Арды.
#!/bin/bash
if [[ -z $1 ]]; then
printf "Usage: ./scriptname <file or url> <optional output filename>\n"
exit 1
fi
resource=$1
md5=`curl --silent --location ${resource} | md5sum | awk '{ print $1 }'`
filename="$(date +%Y-%M-%d-%H-%m-%s-file)"
if [[ -n $2 ]]; then
filename=$2
fi
curl --silent --location $resource -o $filename
md52=`md5sum $filename | awk '{ print $1 }'`
if [[ $md5 == $md52 ]]; then
printf "File sums match.\n"
printf "Saved file to $filename\n"
else
printf "File sums don't match.\n"
#wrapping line to add newline, ugly, but it works
read -rep "Delete file?
" -n 1
fi
if [[ $REPLY =~ ^[Yy]$ ]]; then
rm $filename
exit 1
else
exit 0
fi
Сохраните это в файле, таком как safer-curl.sh, затем выполните chmod +x safer-curl.sh. Затем выполните следующее:
./safer-curl.sh <file or url> <optional output filename>
Проверено на Ubunt 12.04 [!d2 ]
Не «отключить», а «маску».
Обратите внимание, что stop - /sbin/stop. Посмотрите на свой $PATH (echo $PATH | tr ":" "\n"). Вместо этого будет выполнено любое имя с именем stop в каталоге в вашем PATH, который раньше. Если ~/bin ранее, вы можете создать ~/bin/stop, содержащий:
#!/bin/bash
echo "To really run 'stop', type '/sbin/stop`"
exit 0
или
Определить псевдоним в вашем ~/.bashrc:
alias stop="echo \"To really run 'stop', type '/sbin/stop`\""
Не «отключить», а «маску».
Обратите внимание, что stop - /sbin/stop. Посмотрите на свой $PATH (echo $PATH | tr ":" "\n"). Вместо этого будет выполнено любое имя с именем stop в каталоге в вашем PATH, который раньше. Если ~/bin ранее, вы можете создать ~/bin/stop, содержащий:
#!/bin/bash
echo "To really run 'stop', type '/sbin/stop`"
exit 0
или
Определить псевдоним в вашем ~/.bashrc:
alias stop="echo \"To really run 'stop', type '/sbin/stop`\""
Не «отключить», а «маску».
Обратите внимание, что stop - /sbin/stop. Посмотрите на свой $PATH (echo $PATH | tr ":" "\n"). Вместо этого будет выполнено любое имя с именем stop в каталоге в вашем PATH, который раньше. Если ~/bin ранее, вы можете создать ~/bin/stop, содержащий:
#!/bin/bash
echo "To really run 'stop', type '/sbin/stop`"
exit 0
или
Определить псевдоним в вашем ~/.bashrc:
alias stop="echo \"To really run 'stop', type '/sbin/stop`\""