Bash 忽略 IFS

Bash 忽略 IFS
#!/bin/bash

IFS="\n"
cp -R  "$oldpath/*" "$newpath/"

我有一个脚本,必须复制名称中含有空格和其他特殊字符的文件夹。

+ cp -R '/home/vmail/[email protected]/Maildir/.INBOX.Drop.The Host/*' '/home/vmail/[email protected]/Maildir/.DropThe Host/'
cp: cannot stat `/home/vmail/[email protected]/Maildir/.INBOX.Drop.The Host/*': No such file or directory

我用 bash 解释器运行它。

如果我从命令行手动复制它并放置“/home/vmail/[电子邮件受保护]/Maildir/.INBOX.Drop.The Host/" in ""-s 它有效。

答案1

我不能说我看到了IFS这里设置的用途。

但是,*由于它位于双引号内,因此不会被扩展。你可能想要

cp -R  "$oldpath"/* "$newpath"

相关内容