2
我想用一个脚本从外部驱动器自动安装我的家庭文件夹。我的系统是Ubuntu 16.04。bash:从其他驱动器自动安装文件夹到家
我想检查在外部目录中是否存在与HOME文件夹同名的文件夹,然后将HOME中的文件夹重命名为foldername_local,并将外部目录文件夹挂载到HOME中。
这是多远我与谷歌的帮助和计算器有:
REMOTE=/path/to/remote/location
#create a list of external folders
rLIST=$(find $REMOTE -maxdepth 1 -type d -name [^\.]\* -printf '%f\n'| sed 's:^\./::')
#create a list of folders in HOME
hLIST=$(find $HOME -maxdepth 1 -type d -name [^\.]\* -printf '%f\n'| sed 's:^\./::')
#declare comparison function
contains() {
[[ $1 =~ (^|[[:space:]])$2($|[[:space:]]) ]] && exit(0) || exit(1)
}
for item in "$rLIST"; do
if contains hLIST item
then
#rename folder and mount external drive fodlers
mv $HOME$item $HOME$item_local
mount --bind $REMOTE$item $HOME$item
else
continue
fi
done
创建的文件夹名单至今的作品。
不幸的是比较部分不工作,我卡住了。
我很欣赏关于如何解决这个问题的任何想法。
来源:
How do I check if a variable exists in a list in BASH
Listing only directories in UNIX
感谢您的提示[参数扩展](http://wiki.bash-hackers.org/syntax/pe#substring_removal) –
不幸的是我得到只有第10行:[:缺少']'并且不起作用。第1行是[-d $ item] - 行。 –
对不起,我还没有编辑我自己的评论。错误指的是第10行:[-d $ item] && .... –