我使用以下命令将所有文件从一个文件夹移动到另一个文件夹。在这种情况下,我按照以下步骤将文件从文件夹 1 移动到文件夹 2:
# mv -v /path2dir/subdir/folder1/* /var/www/folder2
当然,文件夹2以前已经制作过。问题不是所有文件都成功移动,某些文件(如 .file2ext 、.anotherext 或以字符 (.) 开头的文件(如 .htaccess)和 .error_log 在移动时不成功
如何解决此问题?
提前感谢...
Bash 提供了一种更灵活的方法来指定路径标记:
mv -v /path2dir/subdir/folder1/{.*,*} /var/www/folder2
在大括号内,您可以指定以逗号分隔的标记列表。shell 将通过迭代它们来消耗它们,从而处理所有这些匹配项的所有匹配项。
一个更短但在其他方面等效的替代方案是:
mv -v /path2dir/subdir/folder1/{.,}* /var/www/folder2
这两种选择都会向您发出警告,有关由于充分理由(.
和..
)而被跳过的条目。您可以通过重定向命令的错误输出来抑制这些内容,但您应该小心这样的事情,因为您可能会以这种方式错过重要的细节:
mv -v /path2dir/subdir/folder1/{.,}* /var/www/folder2 2>/dev/null