我试图将.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
所以我的问题是:他们在哪里消失了?
答案 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文件,因为每次移动都会覆盖之前的移动。