8

だから私は一緒に行き、たくさんのファイルを移動しています

mv /source /dest &
mv /source/* /dest/dest/ &
...
...

それから私は不注意になり、

mv /source/filena* /dest/dest/ *

ああ、神様!^c^c^c^c [端末コマンドからの応答なし] ここで実際に何が起こっているのですか?

*コマンドの末尾に&(アンパサンド)の代わりに (アスタリスク)を付けるとどうなりますか?

4

2 に答える 2

8

The shell expands the wildcard *. The mv command never sees the wildcard, only the result of the expansion.

The wildcard * expands to the list of files in the current directory in lexicographic order. If the last file is a directory, then all the preceding files (/source.filenafoo, /source/filenabar, /dest/dest, hello) are moved to that subdirectory. If the last file is not a directory, mv complains that “target a.png is not a directory” (or words to that effect).

See What does mv ./* without specifying destination do? for more detailed examples.

于 2013-08-20T00:20:56.720 に答える
2

コマンド ラインの末尾にあるアスタリスクは、行の他の場所にあるアスタリスクと同じように扱われます。これは、0 個以上の文字に一致するワイルドカードです。具体的には、この場合、*inは、現在のディレクトリ内のすべてのファイルとフォルダーの名前にmv /source/filena* /dest/dest/ *置き換えられます (ドットで始まるものを除く)。mvすべての。

于 2013-08-20T00:18:58.047 に答える