移动后文件丢失

时间:2016-10-20 07:58:20

标签: unix

我试图将.html文件移动到名为' html'的子目录中。现在我找不到文件了。这是我做的(带错误信息):

$ mkdir html
$ for FILE in $(ls *html) ; do mv $FILE .html ; done
mv: cannot stat 'html:': No such file or directory
$ cd html
$ ls *.html
ls: cannot access '*.html': No such file or directory

所以我的问题是:他们在哪里消失了?

2 个答案:

答案 0 :(得分:1)

你有两个问题;首先,有一个错字:

mv $FILE .html
         ^

.不应该在那里!其次,您的文件列表将包含html目录本身,因此要将其排除,请尝试:

for FILE in *html ; do if ! [ -d "$FILE" ] ; then mv "$FILE" html ; fi ; done

请注意,我使用*html而不是$(ls *html)来避免获取html/目录的内容,然后只要我们没有目录名就进行移动。

答案 1 :(得分:1)

您已将所有* html文件有效地移动到名为.html的文件中。只剩下最后一个* html文件,因为每次移动都会覆盖之前的移动。