4

コマンドを発行すると

mv file1 *.file1

file1が置かれているディレクトリでは、それは消えます。どこに行き着くの?*Linuxでのファイル名に有効な文字であり、次*のような期待される結果を得るには、文字をエスケープする必要があることを知っています。

mv file1 \*.file1

しかし、それを逃れなかった場合、それはどこに移動されましたか?

4

1 に答える 1

8

の結果はmv file1 *.file1、何が一致するかによって異なります*.file1

  • *.file1何にも一致しない場合file1は、名前がに変更されます*.file1
  • *.file1が1つのファイルと正確に一致する場合file1、一致したファイルの名前に名前が変更され、一致したファイルは失われます。
  • 正確に1つのファイル*.file1と一致し、そのファイルがディレクトリである場合file1、一致したディレクトリに移動されます。
  • *.file1複数のファイルに一致し、最後に一致したファイルがディレクトリである場合、、、およびfile1一致したすべてのファイル(このディレクトリを除く)がディレクトリに移動されます。
  • *.file1複数のファイルに一致し、最後に一致したファイルがディレクトリではないmv場合、エラーで失敗します。

以下の実験を参照してください。

$ cat /etc/*-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=12.04
DISTRIB_CODENAME=precise
DISTRIB_DESCRIPTION="Ubuntu 12.04.2 LTS"
NAME="Ubuntu"
VERSION="12.04.2 LTS, Precise Pangolin"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu precise (12.04.2 LTS)"
VERSION_ID="12.04"
$ ls
$ touch file1
$ ls
file1
$ mv file1 *.file1
$ ls
*.file1
$ touch file1
$ ls
file1  *.file1
$ mv file1 *.file1
$ ls
*.file1
$ touch 1.file1
$ touch file1
$ mv file1 *.file1
mv: target `*.file1' is not a directory
$ ls
1.file1  file1  *.file1
$ mkdir z.file1
$ mv file1 *.file1
$ ls z.file1/
1.file1  file1  *.file1
于 2013-02-26T13:44:37.397 に答える