将项目移动到新目录时参数无效。命令仍然有效

将项目移动到新目录时参数无效。命令仍然有效

以下是我采取的步骤:

光盘〜

纳米 .bash_profile

别名 dtcl='cd ~/Desktop; mv * Desktop\ Cleanup'

Ctrl-X

Y

节省

如果我运行dtcl,它完全可以正常工作。它将所有内容从桌面移动到一个名为“桌面清理”的新文件夹中,这正是我想要它做的事情,但是,终端也给了我以下输出:

mv:将桌面清理重命名为桌面清理/桌面清理:参数无效

由于我已经在想要创建目录的文件夹中,但该文件夹尚不存在,为什么它会认为我试图在文件夹中创建文件夹?

只是好奇,谢谢!

答案1

看起来您正试图将桌面文件夹中的所有内容移至桌面文件夹内的另一个文件夹中。实际上,您正试图将“桌面清理”文件夹移至其自身(因为它位于桌面中),这是非法的。

将“桌面清理”移到其他位置,或使用正则表达式来抓取除该文件夹之外的所有文件。

答案2

使用 bash,您可以执行以下操作:

shopt -s extglob
mv !("Desktop Cleanup") "Desktop Cleanup"

移动一切不是桌面\清理到该目录。

答案3

正如 Traveling Tech Guy 所说,您正在尝试将“桌面清理”移到其自身中。此外,您不需要当前的您要从中移动文件的目录。

如果您不想更改“桌面清理”目录的位置,您可以使用2>/dev/null 以下方式抑制终端上的错误回显:

alias dtcl='mv ~/Desktop/* Desktop\ Cleanup 2>/dev/null'

相关内容