我目前正在使用此代码:
target_directory_greater="/root/*/"
if [ "${target_directory}" != "${target_directory%%\***}" ]; then
base_target_directory="${target_directory%%\***}"
prefix_target_directory="${target_directory##**\*}"
for t in $base_target_directory/* ; do
if [ -d "${t}${prefix_target_directory}" ]; then
# Found, replace target_directory with real path
target_directory="${t}${prefix_target_directory}"
break
else
continue
fi
done
fi
if [ ! -d "${target_directory}" ]; then
printf "${target_directory} directory wasn't found.\\n\\n"
exit 1
fi
如果grep找到正确的文件夹,我的脚本将移动两个文件夹。一旦grep找到要移动到的文件的正确文件夹,上面的代码就可以处理我声明的变量中的*
字符,它只是使用第一个文件夹而不是指向的一个grep。有没有人在那里看到我的错误?
/root
文件夹里面有一些其他随机命名的文件夹,我使用grep抓取一个特定的字符串,然后将文件单独移动到该文件夹。但由于存在*
,因此会导致问题。