Bash 文件被删除而不是重命名

Bash 文件被删除而不是重命名,bash,Bash,我想重命名一些文件以添加.md扩展名。我运行了下面的命令,但是文件不见了。我正在努力理解为什么 for i in $(ls); do cp "$i" "$(i)".md; done 运行命令i,并将结果放入字符串中。由于您没有i命令,这意味着您的主命令可以写成: for i in $(ls); do cp "$i" .md; done 如果文件夹中有两个文件,比如说a.txt和b.txt,这将有效地执行: cp a.txt .md cp b.txt .md 这不会删除任何内容,但会将这两个

我想重命名一些文件以添加
.md
扩展名。我运行了下面的命令,但是文件不见了。我正在努力理解为什么

for i in $(ls); do cp "$i" "$(i)".md; done
运行命令
i
,并将结果放入字符串中。由于您没有
i
命令,这意味着您的主命令可以写成:

for i in $(ls); do cp "$i" .md; done
如果文件夹中有两个文件,比如说
a.txt
b.txt
,这将有效地执行:

cp a.txt .md
cp b.txt .md
这不会删除任何内容,但会将这两个文件复制到名为
.md
的文件中。这种情况发生两次,因此只有最后一次幸存下来

可能此隐藏文件未显示,因为以
开头的文件有时是隐藏的

运行命令
i
,并将结果放入字符串中。由于您没有
i
命令,这意味着您的主命令可以写成:

for i in $(ls); do cp "$i" .md; done
如果文件夹中有两个文件,比如说
a.txt
b.txt
,这将有效地执行:

cp a.txt .md
cp b.txt .md
这不会删除任何内容,但会将这两个文件复制到名为
.md
的文件中。这种情况发生两次,因此只有最后一次幸存下来


可能这个隐藏的文件没有显示出来,因为以
开头的文件有时是隐藏的。

顺便说一句,请注意,
for i in$(ls)
不是很安全:如果任何文件名包含任何有趣/不寻常的字符(例如空格),它将给出奇怪的结果。相反,您应该在*中为i编写
。(有关更多信息,请参阅。)顺便说一句,请注意,$(ls)中i的
不是很安全:如果任何文件名包含任何有趣/不寻常的字符(例如空格),它将给出奇怪的结果。相反,您应该在*
中为i编写
。(有关详细信息,请参阅。)