Linux 重命名一个'';Ubuntu中的文件

Linux 重命名一个'';Ubuntu中的文件,linux,bash,ubuntu,Linux,Bash,Ubuntu,我使用rsync下载了一个文件,并意外地将其目标设置为“.”(我认为它是要下载到的目录)。因此,它下载了multi-gig文件,但将其命名为“.” drwxr-sr-x 2 root apache 4096 May 7 00:42 . drwxr-sr-x 7 me apache 4096 May 7 00:25 .. -rw-r--r-- 1 1006 1006 2008805206 Apr 5 04:49 . -rw------- 1 root

我使用rsync下载了一个文件,并意外地将其目标设置为“.”(我认为它是要下载到的目录)。因此,它下载了multi-gig文件,但将其命名为“.”

drwxr-sr-x 2 root   apache       4096 May  7 00:42 .
drwxr-sr-x 7 me apache       4096 May  7 00:25 ..
-rw-r--r-- 1   1006   1006 2008805206 Apr  5 04:49 .
-rw------- 1 root   apache       1675 May  7 00:25 somefile
-rw------- 1 root   apache        392 May  7 00:26 anotherfile.txt
如何将2GB+'.'文件重命名为有意义的文件。我所做的一切似乎都不管用(我试过mv、重命名等),但他们都说

Device or resource busy
您可以使用此mv:

mv ./.[[:blank:]]* myfile
或者尝试以下查找:

find . -type f -maxdepth 1 -name '. *' -exec mv '{}' myfile \;

是的,这是一个超级用户的问题。但我在别处找到了解决办法,所以感谢大家的努力。我们可以通过以下方式实现这一点:

find-键入f |(让i=0;读取f时;执行mv“$f”$f“-$i;让i=$i+1;完成)


这不是最优雅的方式,可能也很不安全(因为没有撤销)

从它所在的目录中键入它

mv ./. newfile 

更适合att superuser或类似版本,但一种方法是使用inode编号,使用
ls-i
stat
获取它,然后可以使用
find-inode-exec mv…移动/重命名它。
此问题与堆栈溢出无关。它更适合于。LOL你能写出准确的命令吗?您是如何做到的?它是ssh-i/path/to/pub/keyusername@server.com:folder/file.ext.说明:
mv:target`myfile'不是目录
,对于第二个目录,执行良好,但不重命名。我必须删除
-maxdepth 1
(目录中没有多少内容)您能告诉我:
查找的输出吗-键入f-maxdepth 1-name'.*'-exec printf“\n”{}\
command您发布的答案将移动该目录中的每个文件,而不仅仅是这个文件。不起作用。