MV:无法stat错误:没有这样的文件或目录错误(mv: cannot stat error : N

2019-09-23 12:20发布

我需要一个目录中的文件移动到另一个directory.I得到的统计错误,当我用下面的程序。

for i in dir1/*.txt_dir; do
mv $i/*.txt  dir2/`basename $i`.txt
done

错误信息

mv: cannot stat `dir1/aa7.txt_dir/*.txt': No such file or directory

Answer 1:

正常情况下,这不符合任何一个文件名水珠扩大,它仍然保持不变。 因此,你会得到这样的结果:

$ RM .bak的RM:无法删除`.bak的“:没有这样的文件或目录

为了避免这种情况,我们需要改变变了nullglob的默认值。

    #BASH

    shopt -s nullglob

    for i in dir1/*.txt_dir; do
       mv $i/*.txt  dir2/'basename $i'.txt
    done

了解更多关于在这里: http://mywiki.wooledge.org/NullGlob

希望这可以帮助!



Answer 2:

mv $i/*.txt  dir2/`basename $i`.txt

当有任何文本文件这不起作用$i/ 。 外壳经过原始字符串"$i/*.txt"mv与未展开*在里面,其中mv扼流圈。

尝试是这样的:

for i in dir1/*.txt_dir; do
    find $i -name '*.txt' -exec mv {} dir2/`basename $i`.txt \;
done


Answer 3:

虽然它不是在您的例子所示 - 使用正确的报价是非常重要的。 在BASH“*”的计算结果为*和“*”的计算结果为膨胀水珠。 所以

`ls *`

将显示所有文件和目录

`ls "*"`

会显示命名字面的所有文件*



文章来源: mv: cannot stat error : No such file or directory error
标签: linux bash stat