2016-10-20 13 views
3

.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 

私の質問:どこが消えたのですか?

+1

@Ken Y-Nとe7andy、タイプミスに気付いてくれてありがとう。だから私は '.html'というファイルを見つけました。しかし、私のpresious .htmlファイルはすべて今すぐ消えていたと思いますよね? – DeeCeeDelux

答えて

1

2つの問題があります。まず、タイプミスがあります。

mv $FILE .html 
     ^

その.はありません。第二に、ファイルのリストをしようと、それを排除するために、htmlディレクトリ自体が含まれます:私は移動を行い、その後、html/ディレクトリの内容を拾う避けるために、むしろ$(ls *html)より*htmlを使用

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

注意私たちがディレクトリ名を持っていない限りです。

+0

オタクに注意してくれてありがとう...確かに私は誰もがすべてをねじ込んだと思う。しかし、どこでこの疑わしい ".htmlを見つけるのですか.html – DeeCeeDelux

+1

このようなループを行う前に、私はいつも、"エコーmv "$ FILE" html "のようなものを試して、愚かなことをしないようにしています。 –

+0

こんにちは、ご意見ありがとうございます。確かに、私は '.'を恐れていたので、私はそれを打ちました。 – DeeCeeDelux

1

すべての* htmlファイルを実際に.htmlという名前のファイルに移動しました。すべての移動が前の移動を上書きするので、最後の* htmlファイルのみが残されます。

+0

.htmlファイルは、あなたがmoveコマンドを実行した場所と同じディレクトリにあります。 "。"で始まるファイルを含むすべてのファイルを一覧表示するには実行:ls -la – e7andy

関連する問題