當我發出命令「mv file1 * .file1」是做什麼的?
mv file1 *.file1
在文件1所在的目錄
,它就會消失。它最終在哪裏?我知道*
是在文件名中的有效字符在Linux下,我應該已經逃出*
性格有像
mv file1 \*.file1
預期的結果,但如果沒有逃脫它,在那裏它被移到?
當我發出命令「mv file1 * .file1」是做什麼的?
mv file1 *.file1
在文件1所在的目錄
,它就會消失。它最終在哪裏?我知道*
是在文件名中的有效字符在Linux下,我應該已經逃出*
性格有像
mv file1 \*.file1
預期的結果,但如果沒有逃脫它,在那裏它被移到?
的mv file1 *.file1
結果取決於如果*.file1
比賽沒有什麼是*.file1
file1
被重命名爲*.file1
*.file1
匹配一個文件,然後file1
被重命名爲名稱匹配的文件和匹配的文件丟失。*.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
這取決於什麼水珠'* .file1'匹配。 – Johnsyweb 2013-02-26 13:28:42
你使用什麼發行版?當我在Ubuntu LTS上嘗試這個時,它就像我逃過'*'一樣。 – 2013-02-26 13:31:20
沒有我認爲'*'擴展到目錄內容並且沒有文件可以創建。它報告錯誤嗎?你觀察到了什麼? – 2013-02-26 13:31:23