Должностное лицо 'файл' на всех файлах в текущем directoy, и затем grep для 'ASCII':
find . -maxdepth 1 -exec file {} \; | grep ASCII
Проблема не с Вашим mv
команда.
Расширение тильды является названием того, что делает оболочка, когда это заменяет ~
символ с корневым каталогом пользователя, например. /home/username
. Возможно сказать оболочке не делать это путем заключения в кавычки символа тильды. Это точно, в чем Вы выполнили
DEST="~/scripts/backup"
Вы присвоились к DEST
строка ~/scripts/backup
. Этот каталог на самом деле не существует. Два решения:
Не заключайте в кавычки ~
символ:
DEST=~/scripts/backup
Использовать $HOME
вместо этого:
DEST="$HOME/scripts/backup"
Поместить set -x
наверху Вашего сценария для включения xtrace
опция. При выполнении этого, Вы видели бы что mv
команда использовала неправильный каталог, ~/scripts/backup
вместо /home/yourname/scripts/backup
.
Прочитайте mv руководство
SYNOPSIS
mv [SOURCE] [DEST]
И можно хотеть проверить, существуют ли $DEST уже:
if [ -d ${DEST} ]; then
do something
fi
В противном случае используйте mkdir с-p как параметр для создания родительских каталогов.
...
else
mkdir -p ${DEST}
fi