ターゲットを指定せずに `mv ./*` は何をしますか?

ターゲットを指定せずに `mv ./*` は何をしますか?

誤ってEnterキーを押す前に目的地を指定することを忘れていました。mv ./*ターゲットを指定せずに現在のディレクトリのファイルとディレクトリをどこに移動しますか?

ベストアンサー1

最後の引数がディレクトリの場合は、現在の作業ディレクトリ(名前がドットで始まるファイルを除く)のすべてのファイルとディレクトリをそのディレクトリに移動します。 2つのファイルがある場合、最初のファイルは2番目のファイルを上書きできます。

以下はいくつかのデモです。

ファイルが2つ以上で、最後のパラメーターがファイルです。

$ mkdir d1 d2 d3
$ touch a b c e
$ mv *
mv: target 'e' is not a directory

ファイルが3つ以上、最後のパラメータがディレクトリです。

$ mkdir d1 d2 d3
$ touch a b c
$ mv -v *
'a' -> 'd3/a'
'b' -> 'd3/b'
'c' -> 'd3/c'
'd1' -> 'd3/d1'
'd2' -> 'd3/d2'

2つのファイル

$ touch a b
$ mv -v *
'a' -> 'b'

追加の説明

シェルはglob(*)を引数に拡張しますmv。グローブは通常アルファベット順に展開されます。mv常にファイルとディレクトリのリストを確認してください。それは球体自体を決して見ない。

このコマンドは、mv2 種類の移動をサポートします。一つはmv file ... directory。もう一つはmv old-file-name new-file-name(またはmv old-file-name directory/new-file-name)です。

おすすめ記事